001
014
015 package com.liferay.portlet.workflowtasks.search;
016
017 import com.liferay.portal.kernel.dao.search.SearchContainer;
018 import com.liferay.portal.kernel.util.OrderByComparator;
019 import com.liferay.portal.kernel.util.ParamUtil;
020 import com.liferay.portal.kernel.workflow.WorkflowTask;
021 import com.liferay.portal.kernel.workflow.comparator.WorkflowComparatorFactoryUtil;
022
023 import java.util.ArrayList;
024 import java.util.HashMap;
025 import java.util.List;
026 import java.util.Map;
027
028 import javax.portlet.PortletRequest;
029 import javax.portlet.PortletURL;
030
031
034 public class WorkflowTaskSearch extends SearchContainer<WorkflowTask> {
035
036 public static List<String> headerNames = new ArrayList<String>();
037 public static Map<String, String> orderableHeaders =
038 new HashMap<String, String>();
039
040 static {
041 headerNames.add("task");
042 headerNames.add("asset-title");
043 headerNames.add("last-activity-date");
044 headerNames.add("due-date");
045 headerNames.add("state");
046
047 orderableHeaders.put("task", "task");
048 orderableHeaders.put("due-date", "due-date");
049 }
050
051 public WorkflowTaskSearch(
052 PortletRequest portletRequest, PortletURL iteratorURL) {
053
054 this(portletRequest, DEFAULT_CUR_PARAM, iteratorURL);
055 }
056
057 public WorkflowTaskSearch(
058 PortletRequest portletRequest, String curParam,
059 PortletURL iteratorURL) {
060
061 super(
062 portletRequest, new WorkflowTaskDisplayTerms(portletRequest),
063 new WorkflowTaskDisplayTerms(portletRequest), curParam,
064 DEFAULT_DELTA, iteratorURL, headerNames, null);
065
066 WorkflowTaskDisplayTerms displayTerms =
067 (WorkflowTaskDisplayTerms)getDisplayTerms();
068
069 iteratorURL.setParameter(
070 WorkflowTaskDisplayTerms.NAME, displayTerms.getName());
071 iteratorURL.setParameter(
072 WorkflowTaskDisplayTerms.TYPE, displayTerms.getType());
073
074 String orderByCol = ParamUtil.getString(portletRequest, "orderByCol");
075 String orderByType = ParamUtil.getString(portletRequest, "orderByType");
076
077 OrderByComparator<WorkflowTask> orderByComparator =
078 getOrderByComparator(orderByCol, orderByType);
079
080 setOrderableHeaders(orderableHeaders);
081 setOrderByCol(orderByCol);
082 setOrderByType(orderByType);
083 setOrderByComparator(orderByComparator);
084 }
085
086 protected OrderByComparator<WorkflowTask> getOrderByComparator(
087 String orderByCol, String orderByType) {
088
089 boolean orderByAsc = false;
090
091 if (orderByType.equals("asc")) {
092 orderByAsc = true;
093 }
094
095 OrderByComparator<WorkflowTask> orderByComparator = null;
096
097 if (orderByCol.equals("name")) {
098 orderByComparator =
099 WorkflowComparatorFactoryUtil.getTaskNameComparator(orderByAsc);
100 }
101 else {
102 orderByComparator =
103 WorkflowComparatorFactoryUtil.getTaskDueDateComparator(
104 orderByAsc);
105 }
106
107 return orderByComparator;
108 }
109
110 }