1
14
15 package com.liferay.portlet.workflowtasks.search;
16
17 import com.liferay.portal.kernel.dao.search.SearchContainer;
18 import com.liferay.portal.kernel.util.OrderByComparator;
19 import com.liferay.portal.kernel.util.ParamUtil;
20 import com.liferay.portal.kernel.workflow.WorkflowTask;
21 import com.liferay.portal.kernel.workflow.comparator.WorkflowComparatorFactoryUtil;
22
23 import java.util.ArrayList;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.Map;
27
28 import javax.portlet.PortletRequest;
29 import javax.portlet.PortletURL;
30
31
36 public class WorkflowTaskSearch extends SearchContainer<WorkflowTask> {
37
38 static List<String> headerNames = new ArrayList<String>();
39 static Map<String, String> orderableHeaders = new HashMap<String, String>();
40
41 static {
42 headerNames.add("name");
43 headerNames.add("asset-title");
44 headerNames.add("last-activity-date");
45 headerNames.add("due-date");
46 headerNames.add("state");
47
48 orderableHeaders.put("name", "name");
49 orderableHeaders.put("due-date", "due-date");
50 }
51
52 public WorkflowTaskSearch(
53 PortletRequest portletRequest, PortletURL iteratorURL) {
54
55 super(
56 portletRequest, new WorkflowTaskDisplayTerms(portletRequest),
57 new WorkflowTaskSearchTerms(portletRequest), DEFAULT_CUR_PARAM,
58 DEFAULT_DELTA, iteratorURL, headerNames, null);
59
60 WorkflowTaskDisplayTerms displayTerms =
61 (WorkflowTaskDisplayTerms)getDisplayTerms();
62
63 iteratorURL.setParameter(
64 WorkflowTaskDisplayTerms.NAME, displayTerms.getName());
65 iteratorURL.setParameter(
66 WorkflowTaskDisplayTerms.STATE, displayTerms.getState());
67 iteratorURL.setParameter(
68 WorkflowTaskDisplayTerms.TYPE, displayTerms.getType());
69
70 String orderByCol = ParamUtil.getString(
71 portletRequest, "orderByCol");
72 String orderByType = ParamUtil.getString(
73 portletRequest, "orderByType");
74
75 OrderByComparator orderByComparator = getOrderByComparator(
76 orderByCol, orderByType);
77
78 setOrderableHeaders(orderableHeaders);
79 setOrderByCol(orderByCol);
80 setOrderByType(orderByType);
81 setOrderByComparator(orderByComparator);
82 }
83
84 protected OrderByComparator getOrderByComparator(
85 String orderByCol, String orderByType) {
86
87 boolean orderByAsc = false;
88
89 if (orderByType.equals("asc")) {
90 orderByAsc = true;
91 }
92
93 OrderByComparator orderByComparator = null;
94
95 if (orderByCol.equals("name")){
96 orderByComparator =
97 WorkflowComparatorFactoryUtil.getTaskNameComparator(orderByAsc);
98 }
99 else if (orderByCol.equals("due-date")) {
100 orderByComparator =
101 WorkflowComparatorFactoryUtil.getTaskDueDateComparator(
102 orderByAsc);
103 }
104
105 return orderByComparator;
106 }
107
108 }