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.TYPE, displayTerms.getType());
67
68 String orderByCol = ParamUtil.getString(
69 portletRequest, "orderByCol");
70 String orderByType = ParamUtil.getString(
71 portletRequest, "orderByType");
72
73 OrderByComparator orderByComparator = getOrderByComparator(
74 orderByCol, orderByType);
75
76 setOrderableHeaders(orderableHeaders);
77 setOrderByCol(orderByCol);
78 setOrderByType(orderByType);
79 setOrderByComparator(orderByComparator);
80 }
81
82 protected OrderByComparator getOrderByComparator(
83 String orderByCol, String orderByType) {
84
85 boolean orderByAsc = false;
86
87 if (orderByType.equals("asc")) {
88 orderByAsc = true;
89 }
90
91 OrderByComparator orderByComparator = null;
92
93 if (orderByCol.equals("due-date")) {
94 orderByComparator =
95 WorkflowComparatorFactoryUtil.getTaskDueDateComparator(
96 orderByAsc);
97 }
98 else if (orderByCol.equals("name")){
99 orderByComparator =
100 WorkflowComparatorFactoryUtil.getTaskNameComparator(orderByAsc);
101 }
102
103 return orderByComparator;
104 }
105
106 }