/** * Counts the total number of user entries from the memberslist.<br> * NOTE: This does not count distinct users - so with multiple selected groups, the count may be * off */ public int getAssignedUsersCount() { int assignedUsersCount = 0; Iterator groupOptions = getMembersList().iterator(); while (groupOptions.hasNext()) { GroupOption groupOption = (GroupOption) groupOptions.next(); assignedUsersCount += groupOption.getChildOptions().size(); } return assignedUsersCount; }
/** used to determine what the option value (format) for a UserOption should be */ public String getOptionValue(UserOption userOption) { if (userOption != null) { GroupOption parentOption = userOption.getParentOption(); if (parentOption != null && parentOption.getGroup() != null) { return userOption.getName() + OPTION_VALUE_SEPERATOR + parentOption.getRawName(); } else { return userOption.getName(); } } return ""; }
/** * Used to populate the assigned users of the selected groups.<br> * Always has the 'All' group which represents all the members of the selected groups.<br> * Rest of the users are added under individual group names. */ public Collection getMembersList() { if (membersList != null || getSelectedGroupsUserHasPermToSee() == null) return membersList; membersList = new ArrayList(); overloadedGroups = new ArrayList(); boolean singleGroupSelected = getSelectedGroupsUserHasPermToSee().size() == 1; // for each selected group GroupOption allGroupOption = new GroupOption(getText("admin.bulkeditgroups.all.selected.groups")); membersList.add(allGroupOption); Iterator<Group> groups = getSelectedGroupsUserHasPermToSee().iterator(); while (groups.hasNext()) { Group group = groups.next(); // and for each users in that group if (group != null) { GroupOption groupOption = new GroupOption(group); Collection<User> users = groupManager.getDirectUsersInGroup(group); Iterator<User> usersOfGroup = users.iterator(); int count = 0; while (usersOfGroup.hasNext()) { User user = usersOfGroup.next(); if (user != null) { // increment count count++; if (count > getMaxUsersDisplayedPerGroup()) { overloadedGroups.add(group.getName()); break; } if (singleGroupSelected || !isUserInAllGroupsSelected(user)) { groupOption.addChildOption(new UserOption(user)); } else // if more than one group is selected and the user is in all groups add to the // main list { allGroupOption.addChildOption(new UserOption(user)); } } } if (!groupOption.getChildOptions().isEmpty()) membersList.add(groupOption); } } if (allGroupOption.getChildOptions().isEmpty()) { // remove only if empty (must be inserted at top to keep order) membersList.remove(allGroupOption); } return membersList; }