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