1
22
23 package com.liferay.portlet.enterpriseadmin.search;
24
25 import com.liferay.portal.kernel.dao.search.SearchContainer;
26 import com.liferay.portal.kernel.util.OrderByComparator;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.kernel.util.Validator;
29 import com.liferay.portal.model.Organization;
30 import com.liferay.portal.util.PortletKeys;
31 import com.liferay.portlet.PortalPreferences;
32 import com.liferay.portlet.PortletPreferencesFactoryUtil;
33 import com.liferay.portlet.enterpriseadmin.util.EnterpriseAdminUtil;
34
35 import java.util.ArrayList;
36 import java.util.HashMap;
37 import java.util.List;
38 import java.util.Map;
39
40 import javax.portlet.PortletURL;
41 import javax.portlet.RenderRequest;
42
43 import org.apache.commons.logging.Log;
44 import org.apache.commons.logging.LogFactory;
45
46
52 public class OrganizationSearch extends SearchContainer<Organization> {
53
54 static List<String> headerNames = new ArrayList<String>();
55 static Map<String, String> orderableHeaders = new HashMap<String, String>();
56
57 static {
58 headerNames.add("name");
59 headerNames.add("parent-organization");
60 headerNames.add("type");
61 headerNames.add("city");
62 headerNames.add("region");
63 headerNames.add("country");
64
65 orderableHeaders.put("name", "name");
66 orderableHeaders.put("type", "type");
67 }
68
69 public static final String EMPTY_RESULTS_MESSAGE =
70 "no-organizations-were-found";
71
72 public OrganizationSearch(
73 RenderRequest renderRequest, PortletURL iteratorURL) {
74
75 super(
76 renderRequest, new OrganizationDisplayTerms(renderRequest),
77 new OrganizationSearchTerms(renderRequest), DEFAULT_CUR_PARAM,
78 DEFAULT_DELTA, iteratorURL, headerNames, EMPTY_RESULTS_MESSAGE);
79
80 OrganizationDisplayTerms displayTerms =
81 (OrganizationDisplayTerms)getDisplayTerms();
82
83 iteratorURL.setParameter(
84 OrganizationDisplayTerms.NAME, displayTerms.getName());
85 iteratorURL.setParameter(
86 OrganizationDisplayTerms.STREET, displayTerms.getStreet());
87 iteratorURL.setParameter(
88 OrganizationDisplayTerms.CITY, displayTerms.getCity());
89 iteratorURL.setParameter(
90 OrganizationDisplayTerms.ZIP, displayTerms.getZip());
91 iteratorURL.setParameter(
92 OrganizationDisplayTerms.COUNTRY_ID,
93 String.valueOf(displayTerms.getCountryId()));
94 iteratorURL.setParameter(
95 OrganizationDisplayTerms.REGION_ID,
96 String.valueOf(displayTerms.getRegionId()));
97 iteratorURL.setParameter(
98 OrganizationDisplayTerms.PARENT_ORGANIZATION_ID,
99 String.valueOf(displayTerms.getParentOrganizationId()));
100
101 try {
102 PortalPreferences prefs =
103 PortletPreferencesFactoryUtil.getPortalPreferences(
104 renderRequest);
105
106 String orderByCol = ParamUtil.getString(
107 renderRequest, "orderByCol");
108 String orderByType = ParamUtil.getString(
109 renderRequest, "orderByType");
110
111 if (Validator.isNotNull(orderByCol) &&
112 Validator.isNotNull(orderByType)) {
113
114 prefs.setValue(
115 PortletKeys.ENTERPRISE_ADMIN, "organizations-order-by-col",
116 orderByCol);
117 prefs.setValue(
118 PortletKeys.ENTERPRISE_ADMIN, "organizations-order-by-type",
119 orderByType);
120 }
121 else {
122 orderByCol = prefs.getValue(
123 PortletKeys.ENTERPRISE_ADMIN, "organizations-order-by-col",
124 "name");
125 orderByType = prefs.getValue(
126 PortletKeys.ENTERPRISE_ADMIN, "organizations-order-by-type",
127 "asc");
128 }
129
130 OrderByComparator orderByComparator =
131 EnterpriseAdminUtil.getOrganizationOrderByComparator(
132 orderByCol, orderByType);
133
134 setOrderableHeaders(orderableHeaders);
135 setOrderByCol(orderByCol);
136 setOrderByType(orderByType);
137 setOrderByComparator(orderByComparator);
138 }
139 catch (Exception e) {
140 _log.error(e);
141 }
142 }
143
144 private static Log _log = LogFactory.getLog(OrganizationSearch.class);
145
146 }