Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -ra32253e94b8d9935115008febdd3587e191fce10 -reb42380458dff71406b1964f915d8428a4bf2a2e Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -ra32253e94b8d9935115008febdd3587e191fce10 -reb42380458dff71406b1964f915d8428a4bf2a2e --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision a32253e94b8d9935115008febdd3587e191fce10) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision eb42380458dff71406b1964f915d8428a4bf2a2e) @@ -101,16 +101,6 @@ */ public class HomeAction extends DispatchAction { - private static final Comparator LD_NAME_COMPARATOR = new Comparator() { - // folders go first, then sort by name - @Override - public int compare(FolderContentDTO o1, FolderContentDTO o2) { - return o1.getResourceType().equals(o2.getResourceType()) ? o1.getName().compareTo(o2.getName()) - : FolderContentDTO.FOLDER.equals(o1.getResourceType()) ? -1 : 1; - } - - }; - private static Logger log = Logger.getLogger(HomeAction.class); private static IUserManagementService service; @@ -472,7 +462,7 @@ // special behaviour for organisation folders } else if (folderID.equals(WorkspaceAction.ORG_FOLDER_ID)) { folderContents = getWorkspaceManagementService().getAccessibleOrganisationWorkspaceFolders(userID); - Collections.sort(folderContents, HomeAction.LD_NAME_COMPARATOR); + Collections.sort(folderContents); if (folderContents.size() == 1) { FolderContentDTO folder = folderContents.firstElement(); @@ -484,7 +474,7 @@ WorkspaceFolder folder = getWorkspaceManagementService().getWorkspaceFolder(folderID); folderContents = getWorkspaceManagementService().getFolderContents(userID, folder, WorkspaceManagementService.MONITORING); - Collections.sort(folderContents, HomeAction.LD_NAME_COMPARATOR); + Collections.sort(folderContents); } // fill JSON object with folders and LDs Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -rc939f67341afd2be5afd617f7116bfb1b792b1dd -reb42380458dff71406b1964f915d8428a4bf2a2e --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision c939f67341afd2be5afd617f7116bfb1b792b1dd) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision eb42380458dff71406b1964f915d8428a4bf2a2e) @@ -341,6 +341,8 @@ }else { throw new UserAccessDeniedException(user); } + + Collections.sort(contentDTO); return contentDTO; } @@ -1177,17 +1179,7 @@ } //sort folders by their names - Collections.sort(folders, new Comparator() { - - @Override - public int compare(FolderContentDTO fc1, FolderContentDTO fc2) { - if ((fc1.getName() != null) && (fc2.getName() != null)) { - return fc1.getName().compareToIgnoreCase(fc2.getName()); - } - //return 1 if either of comparable FolderContentDTOs has a null name - return 1; - } - }); + Collections.sort(folders); return folders; } Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java =================================================================== diff -u -r097c7143c4edf7a649e785d0f58a1bbf640edd3b -reb42380458dff71406b1964f915d8428a4bf2a2e --- lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java (.../FolderContentDTO.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b) +++ lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java (.../FolderContentDTO.java) (revision eb42380458dff71406b1964f915d8428a4bf2a2e) @@ -37,7 +37,7 @@ /** * @author Manpreet Minhas */ -public class FolderContentDTO { +public class FolderContentDTO implements Comparable { public static final String LESSON ="Lesson"; public static final String DESIGN ="LearningDesign"; @@ -125,7 +125,19 @@ this.versionDetails = new Vector(); versionDetails.addAll(details); this.readOnly = Boolean.FALSE; - } + } + + @Override + public int compareTo(FolderContentDTO o) { + if ((o != null) && o instanceof FolderContentDTO) { + FolderContentDTO anotherQuestion = (FolderContentDTO) o; + // folders go first, then sort by name + return resourceType.equals(anotherQuestion.getResourceType()) ? name.compareToIgnoreCase(anotherQuestion.getName()) + : FolderContentDTO.FOLDER.equals(anotherQuestion.getResourceType()) ? -1 : 1; + } else { + return 1; + } + } /** * @return Returns the creationDateTime.