]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/execution/ListModulesDescriptors.java
Order modules by name
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / execution / ListModulesDescriptors.java
1 package org.argeo.slc.web.mvc.execution;
2
3 import java.util.Comparator;
4 import java.util.List;
5 import java.util.SortedSet;
6 import java.util.TreeSet;
7
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10
11 import org.argeo.slc.execution.ExecutionModuleDescriptor;
12 import org.argeo.slc.msg.ObjectList;
13 import org.argeo.slc.runtime.SlcAgent;
14 import org.argeo.slc.runtime.SlcAgentFactory;
15 import org.argeo.slc.web.mvc.AbstractServiceController;
16 import org.springframework.web.servlet.ModelAndView;
17
18 /** . */
19 public class ListModulesDescriptors extends AbstractServiceController {
20 private SlcAgentFactory agentFactory;
21
22 @Override
23 protected void handleServiceRequest(HttpServletRequest request,
24 HttpServletResponse response, ModelAndView modelAndView)
25 throws Exception {
26
27 // TODO: use centralized agentId property (from MsgConstants)?
28 String agentId = request.getParameter("agentId");
29
30 SlcAgent slcAgent = agentFactory.getAgent(agentId);
31
32 List<ExecutionModuleDescriptor> descriptors = slcAgent
33 .listExecutionModuleDescriptors();
34 SortedSet<ExecutionModuleDescriptor> set = new TreeSet<ExecutionModuleDescriptor>(
35 new Comparator<ExecutionModuleDescriptor>() {
36
37 public int compare(ExecutionModuleDescriptor md1,
38 ExecutionModuleDescriptor md2) {
39 String str1 = md1.getLabel() != null ? md1.getLabel()
40 : md1.getName();
41 String str2 = md2.getLabel() != null ? md2.getLabel()
42 : md2.getName();
43 return str1.compareTo(str2);
44 }
45 });
46 set.addAll(descriptors);
47
48 modelAndView.addObject(new ObjectList(set));
49 }
50
51 public void setAgentFactory(SlcAgentFactory agentFactory) {
52 this.agentFactory = agentFactory;
53 }
54
55 }