Author: mflorea
Date: 2008-01-29 15:06:20 +0100 (Tue, 29 Jan 2008)
New Revision: 7164
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
Log:
CURRIKI-1479: Members tab is not displaying members in alpha order
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
2008-01-29 13:42:53 UTC (rev 7163)
+++
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
2008-01-29 14:06:20 UTC (rev 7164)
@@ -1116,14 +1116,48 @@
}
- public Collection getMembers(String spaceName, XWikiContext context)
throws SpaceManagerException {
+ public Collection getMembers(String spaceName, final XWikiContext context)
+ throws SpaceManagerException
+ {
try {
- return
getGroupService(context).getAllMembersNamesForGroup(getMemberGroupName(spaceName),
0, 0, context);
+ return
sortUserNames(getGroupService(context).getAllMembersNamesForGroup(
+ getMemberGroupName(spaceName), 0, 0, context), context);
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
}
+ private List sortUserNames(Collection collectionOfUsers, final
XWikiContext context)
+ {
+ List users = new ArrayList(collectionOfUsers);
+ Collections.sort(users, new Comparator()
+ {
+ public int compare(Object a, Object b)
+ {
+ try {
+ XWikiDocument aDoc =
context.getWiki().getDocument((String) a, context);
+ XWikiDocument bDoc =
context.getWiki().getDocument((String) b, context);
+ String aFirstName =
+
aDoc.getObject("XWiki.XWikiUsers").getStringValue("first_name");
+ String bFirstName =
+
bDoc.getObject("XWiki.XWikiUsers").getStringValue("first_name");
+ int cmp = aFirstName.compareToIgnoreCase(bFirstName);
+ if (cmp == 0) {
+ String aLastName =
+
aDoc.getObject("XWiki.XWikiUsers").getStringValue("last_name");
+ String bLastName =
+
bDoc.getObject("XWiki.XWikiUsers").getStringValue("last_name");
+ return aLastName.compareTo(bLastName);
+ } else {
+ return cmp;
+ }
+ } catch (Exception e) {
+ return ((String) a).compareTo((String) b);
+ }
+ }
+ });
+ return users;
+ }
public String getMemberGroupName(String spaceName) {
return getSpaceManagerExtension().getMemberGroupName(spaceName);
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications