Order modules by name
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 30 Jul 2009 16:32:51 +0000 (16:32 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 30 Jul 2009 16:32:51 +0000 (16:32 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@2840 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/execution/ListModulesDescriptors.java

index 392e46ebcf1bf851c2a0db539c0720a7fbde4b79..65637246b287ec4510fba7f99f354dfd37c8ece0 100644 (file)
@@ -1,6 +1,9 @@
 package org.argeo.slc.web.mvc.execution;\r
 \r
+import java.util.Comparator;\r
 import java.util.List;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
 \r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
@@ -23,12 +26,26 @@ public class ListModulesDescriptors extends AbstractServiceController {
 \r
                // TODO: use centralized agentId property (from MsgConstants)?\r
                String agentId = request.getParameter("agentId");\r
-               \r
-               SlcAgent slcAgent = agentFactory.getAgent(agentId);\r
 \r
-               List<ExecutionModuleDescriptor> descriptors = slcAgent.listExecutionModuleDescriptors();\r
+               SlcAgent slcAgent = agentFactory.getAgent(agentId);\r
 \r
-               modelAndView.addObject(new ObjectList(descriptors));\r
+               List<ExecutionModuleDescriptor> descriptors = slcAgent\r
+                               .listExecutionModuleDescriptors();\r
+               SortedSet<ExecutionModuleDescriptor> set = new TreeSet<ExecutionModuleDescriptor>(\r
+                               new Comparator<ExecutionModuleDescriptor>() {\r
+\r
+                                       public int compare(ExecutionModuleDescriptor md1,\r
+                                                       ExecutionModuleDescriptor md2) {\r
+                                               String str1 = md1.getLabel() != null ? md1.getLabel()\r
+                                                               : md1.getName();\r
+                                               String str2 = md2.getLabel() != null ? md2.getLabel()\r
+                                                               : md2.getName();\r
+                                               return str1.compareTo(str2);\r
+                                       }\r
+                               });\r
+               set.addAll(descriptors);\r
+\r
+               modelAndView.addObject(new ObjectList(set));\r
        }\r
 \r
        public void setAgentFactory(SlcAgentFactory agentFactory) {\r