001
014
015 package com.liferay.portlet.bookmarks.util;
016
017 import com.liferay.portal.kernel.exception.SystemException;
018 import com.liferay.portal.kernel.portlet.LiferayWindowState;
019 import com.liferay.portal.kernel.util.GetterUtil;
020 import com.liferay.portal.kernel.util.LocaleUtil;
021 import com.liferay.portal.kernel.util.LocalizationUtil;
022 import com.liferay.portal.kernel.util.OrderByComparator;
023 import com.liferay.portal.kernel.util.ParamUtil;
024 import com.liferay.portal.kernel.util.PropsKeys;
025 import com.liferay.portal.kernel.util.StringPool;
026 import com.liferay.portal.kernel.util.Validator;
027 import com.liferay.portal.theme.ThemeDisplay;
028 import com.liferay.portal.util.PortalUtil;
029 import com.liferay.portal.util.PropsUtil;
030 import com.liferay.portal.util.PropsValues;
031 import com.liferay.portal.util.WebKeys;
032 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
033 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
034 import com.liferay.portlet.bookmarks.model.BookmarksFolderConstants;
035 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
036 import com.liferay.portlet.bookmarks.util.comparator.EntryCreateDateComparator;
037 import com.liferay.portlet.bookmarks.util.comparator.EntryModifiedDateComparator;
038 import com.liferay.portlet.bookmarks.util.comparator.EntryNameComparator;
039 import com.liferay.portlet.bookmarks.util.comparator.EntryPriorityComparator;
040 import com.liferay.portlet.bookmarks.util.comparator.EntryURLComparator;
041 import com.liferay.portlet.bookmarks.util.comparator.EntryVisitsComparator;
042 import com.liferay.util.ContentUtil;
043
044 import java.util.Collections;
045 import java.util.List;
046 import java.util.Locale;
047 import java.util.Map;
048
049 import javax.portlet.PortletPreferences;
050 import javax.portlet.PortletURL;
051 import javax.portlet.RenderResponse;
052
053 import javax.servlet.http.HttpServletRequest;
054
055
058 public class BookmarksUtil {
059
060 public static void addPortletBreadcrumbEntries(
061 BookmarksEntry entry, HttpServletRequest request,
062 RenderResponse renderResponse)
063 throws Exception {
064
065 BookmarksFolder folder = entry.getFolder();
066
067 if (folder.getFolderId() !=
068 BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
069
070 addPortletBreadcrumbEntries(folder, request, renderResponse);
071 }
072
073 PortletURL portletURL = renderResponse.createRenderURL();
074
075 portletURL.setParameter("struts_action", "/bookmarks/view_entry");
076 portletURL.setParameter("entryId", String.valueOf(entry.getEntryId()));
077
078 PortalUtil.addPortletBreadcrumbEntry(
079 request, entry.getName(), portletURL.toString());
080 }
081
082 public static void addPortletBreadcrumbEntries(
083 BookmarksFolder folder, HttpServletRequest request,
084 RenderResponse renderResponse)
085 throws Exception {
086
087 String strutsAction = ParamUtil.getString(request, "struts_action");
088
089 PortletURL portletURL = renderResponse.createRenderURL();
090
091 if (strutsAction.equals("/bookmarks/select_folder")) {
092 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
093 WebKeys.THEME_DISPLAY);
094
095 portletURL.setWindowState(LiferayWindowState.POP_UP);
096
097 portletURL.setParameter(
098 "struts_action", "/bookmarks/select_folder");
099
100 PortalUtil.addPortletBreadcrumbEntry(
101 request, themeDisplay.translate("home"), portletURL.toString());
102 }
103 else {
104 portletURL.setParameter("struts_action", "/bookmarks/view");
105 }
106
107 List<BookmarksFolder> ancestorFolders = folder.getAncestors();
108
109 Collections.reverse(ancestorFolders);
110
111 for (BookmarksFolder ancestorFolder : ancestorFolders) {
112 portletURL.setParameter(
113 "folderId", String.valueOf(ancestorFolder.getFolderId()));
114
115 PortalUtil.addPortletBreadcrumbEntry(
116 request, ancestorFolder.getName(), portletURL.toString());
117 }
118
119 portletURL.setParameter(
120 "folderId", String.valueOf(folder.getFolderId()));
121
122 if (folder.getFolderId() !=
123 BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
124
125 PortalUtil.addPortletBreadcrumbEntry(
126 request, folder.getName(), portletURL.toString());
127 }
128 }
129
130 public static void addPortletBreadcrumbEntries(
131 long folderId, HttpServletRequest request,
132 RenderResponse renderResponse)
133 throws Exception {
134
135 if (folderId == BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
136 return;
137 }
138
139 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
140 folderId);
141
142 addPortletBreadcrumbEntries(folder, request, renderResponse);
143 }
144
145 public static Map<Locale, String> getEmailEntryAddedBodyMap(
146 PortletPreferences preferences) {
147
148 Map<Locale, String> map = LocalizationUtil.getLocalizationMap(
149 preferences, "emailEntryAddedBody");
150
151 Locale defaultLocale = LocaleUtil.getDefault();
152
153 String defaultValue = map.get(defaultLocale);
154
155 if (Validator.isNotNull(defaultValue)) {
156 return map;
157 }
158
159 map.put(
160 defaultLocale,
161 ContentUtil.get(
162 PropsUtil.get(PropsKeys.BOOKMARKS_EMAIL_ENTRY_ADDED_BODY)));
163
164 return map;
165 }
166
167 public static boolean getEmailEntryAddedEnabled(
168 PortletPreferences preferences) {
169
170 String emailEntryAddedEnabled = preferences.getValue(
171 "emailEntryAddedEnabled", StringPool.BLANK);
172
173 if (Validator.isNotNull(emailEntryAddedEnabled)) {
174 return GetterUtil.getBoolean(emailEntryAddedEnabled);
175 }
176 else {
177 return GetterUtil.getBoolean(
178 PropsUtil.get(PropsKeys.BOOKMARKS_EMAIL_ENTRY_ADDED_ENABLED));
179 }
180 }
181
182 public static Map<Locale, String> getEmailEntryAddedSubjectMap(
183 PortletPreferences preferences) {
184
185 Map<Locale, String> map = LocalizationUtil.getLocalizationMap(
186 preferences, "emailEntryAddedSubject");
187
188 Locale defaultLocale = LocaleUtil.getDefault();
189
190 String defaultValue = map.get(defaultLocale);
191
192 if (Validator.isNotNull(defaultValue)) {
193 return map;
194 }
195
196 map.put(
197 defaultLocale,
198 ContentUtil.get(
199 PropsUtil.get(PropsKeys.BOOKMARKS_EMAIL_ENTRY_ADDED_SUBJECT)));
200
201 return map;
202 }
203
204 public static Map<Locale, String> getEmailEntryUpdatedBodyMap(
205 PortletPreferences preferences) {
206
207 Map<Locale, String> map = LocalizationUtil.getLocalizationMap(
208 preferences, "emailEntryUpdatedBody");
209
210 Locale defaultLocale = LocaleUtil.getDefault();
211
212 String defaultValue = map.get(defaultLocale);
213
214 if (Validator.isNotNull(defaultValue)) {
215 return map;
216 }
217
218 map.put(
219 defaultLocale,
220 ContentUtil.get(
221 PropsUtil.get(PropsKeys.BOOKMARKS_EMAIL_ENTRY_UPDATED_BODY)));
222
223 return map;
224 }
225
226 public static boolean getEmailEntryUpdatedEnabled(
227 PortletPreferences preferences) {
228
229 String emailEntryUpdatedEnabled = preferences.getValue(
230 "emailEntryUpdatedEnabled", StringPool.BLANK);
231
232 if (Validator.isNotNull(emailEntryUpdatedEnabled)) {
233 return GetterUtil.getBoolean(emailEntryUpdatedEnabled);
234 }
235 else {
236 return GetterUtil.getBoolean(
237 PropsUtil.get(PropsKeys.BOOKMARKS_EMAIL_ENTRY_UPDATED_ENABLED));
238 }
239 }
240
241 public static Map<Locale, String> getEmailEntryUpdatedSubjectMap(
242 PortletPreferences preferences) {
243
244 Map<Locale, String> map = LocalizationUtil.getLocalizationMap(
245 preferences, "emailEntryUpdatedSubject");
246
247 Locale defaultLocale = LocaleUtil.getDefault();
248
249 String defaultValue = map.get(defaultLocale);
250
251 if (Validator.isNotNull(defaultValue)) {
252 return map;
253 }
254
255 map.put(
256 defaultLocale,
257 ContentUtil.get(
258 PropsUtil.get(
259 PropsKeys.BOOKMARKS_EMAIL_ENTRY_UPDATED_SUBJECT)));
260
261 return map;
262 }
263
264 public static String getEmailFromAddress(
265 PortletPreferences preferences, long companyId)
266 throws SystemException {
267
268 return PortalUtil.getEmailFromAddress(
269 preferences, companyId, PropsValues.BOOKMARKS_EMAIL_FROM_ADDRESS);
270 }
271
272 public static String getEmailFromName(
273 PortletPreferences preferences, long companyId)
274 throws SystemException {
275
276 return PortalUtil.getEmailFromName(
277 preferences, companyId, PropsValues.BOOKMARKS_EMAIL_FROM_NAME);
278 }
279
280 public static OrderByComparator getEntryOrderByComparator(
281 String orderByCol, String orderByType) {
282
283 boolean orderByAsc = false;
284
285 if (orderByType.equals("asc")) {
286 orderByAsc = true;
287 }
288
289 OrderByComparator orderByComparator = null;
290
291 if (orderByCol.equals("create-date")) {
292 orderByComparator = new EntryCreateDateComparator(orderByAsc);
293 }
294 else if (orderByCol.equals("modified-date")) {
295 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
296 }
297 else if (orderByCol.equals("name")) {
298 orderByComparator = new EntryNameComparator(orderByAsc);
299 }
300 else if (orderByCol.equals("priority")) {
301 orderByComparator = new EntryPriorityComparator(orderByAsc);
302 }
303 else if (orderByCol.equals("url")) {
304 orderByComparator = new EntryURLComparator(orderByAsc);
305 }
306 else if (orderByCol.equals("visits")) {
307 orderByComparator = new EntryVisitsComparator(orderByAsc);
308 }
309
310 return orderByComparator;
311 }
312
313 }