public void postOnAssignTags(Map<Guid, Boolean> attachedTags) { TagListModel model = (TagListModel) getWindow(); ArrayList<Guid> userIds = new ArrayList<Guid>(); ArrayList<Guid> grpIds = new ArrayList<Guid>(); for (Object item : getSelectedItems()) { DbUser user = (DbUser) item; if (user.isGroup()) { grpIds.add(user.getId()); } else { userIds.add(user.getId()); } } // prepare attach/detach lists ArrayList<Guid> tagsToAttach = new ArrayList<Guid>(); ArrayList<Guid> tagsToDetach = new ArrayList<Guid>(); if (model.getItems() != null && ((ArrayList<TagModel>) model.getItems()).size() > 0) { ArrayList<TagModel> tags = (ArrayList<TagModel>) model.getItems(); TagModel rootTag = tags.get(0); TagModel.recursiveEditAttachDetachLists(rootTag, attachedTags, tagsToAttach, tagsToDetach); } ArrayList<VdcActionParametersBase> usersToAttach = new ArrayList<VdcActionParametersBase>(); ArrayList<VdcActionParametersBase> grpsToAttach = new ArrayList<VdcActionParametersBase>(); for (Guid tag_id : tagsToAttach) { if (userIds.size() > 0) { usersToAttach.add(new AttachEntityToTagParameters(tag_id, userIds)); } if (grpIds.size() > 0) { grpsToAttach.add(new AttachEntityToTagParameters(tag_id, grpIds)); } } if (usersToAttach.size() > 0) { Frontend.getInstance().runMultipleAction(VdcActionType.AttachUserToTag, usersToAttach); } if (grpsToAttach.size() > 0) { Frontend.getInstance().runMultipleAction(VdcActionType.AttachUserGroupToTag, grpsToAttach); } ArrayList<VdcActionParametersBase> usersToDetach = new ArrayList<VdcActionParametersBase>(); ArrayList<VdcActionParametersBase> grpsToDetach = new ArrayList<VdcActionParametersBase>(); for (Guid tag_id : tagsToDetach) { if (userIds.size() > 0) { usersToDetach.add(new AttachEntityToTagParameters(tag_id, userIds)); } if (grpIds.size() > 0) { grpsToDetach.add(new AttachEntityToTagParameters(tag_id, grpIds)); } } if (usersToDetach.size() > 0) { Frontend.getInstance().runMultipleAction(VdcActionType.DetachUserFromTag, usersToDetach); } if (grpsToDetach.size() > 0) { Frontend.getInstance().runMultipleAction(VdcActionType.DetachUserGroupFromTag, grpsToDetach); } cancel(); }
private void postGetAttachedTags(UserListModel userListModel, TagListModel tagListModel) { if (userListModel.getLastExecutedCommand() == getAssignTagsCommand()) { ArrayList<Tags> attachedTags = Linq.distinct(userListModel.allAttachedTags, new TagsEqualityComparer()); for (Tags a : attachedTags) { int count = 0; for (Tags b : allAttachedTags) { if (b.gettag_id().equals(a.gettag_id())) { count++; } } userListModel.attachedTagsToEntities.put( a.gettag_id(), count == userListModel.getSelectedItems().size()); } tagListModel.setAttachedTagsToEntities(userListModel.attachedTagsToEntities); } else if ("OnAssignTags" .equals(userListModel.getLastExecutedCommand().getName())) // $NON-NLS-1$ { userListModel.postOnAssignTags(tagListModel.getAttachedTagsToEntities()); } }
public void assignTags() { if (getWindow() != null) { return; } TagListModel model = new TagListModel(); setWindow(model); model.setTitle(ConstantsManager.getInstance().getConstants().assignTagsTitle()); model.setHelpTag(HelpTag.assign_tags_users); model.setHashName("assign_tags_users"); // $NON-NLS-1$ getAttachedTagsToSelectedUsers(model); UICommand tempVar = new UICommand("OnAssignTags", this); // $NON-NLS-1$ tempVar.setTitle(ConstantsManager.getInstance().getConstants().ok()); tempVar.setIsDefault(true); model.getCommands().add(tempVar); UICommand tempVar2 = new UICommand("Cancel", this); // $NON-NLS-1$ tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel()); tempVar2.setIsCancel(true); model.getCommands().add(tempVar2); }