1
14
15 package com.liferay.portlet.bookmarks.util;
16
17 import com.liferay.portal.kernel.portlet.LiferayWindowState;
18 import com.liferay.portal.kernel.util.OrderByComparator;
19 import com.liferay.portal.kernel.util.ParamUtil;
20 import com.liferay.portal.theme.ThemeDisplay;
21 import com.liferay.portal.util.PortalUtil;
22 import com.liferay.portal.util.WebKeys;
23 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
24 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
25 import com.liferay.portlet.bookmarks.model.BookmarksFolderConstants;
26 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
27 import com.liferay.portlet.bookmarks.util.comparator.EntryCreateDateComparator;
28 import com.liferay.portlet.bookmarks.util.comparator.EntryModifiedDateComparator;
29 import com.liferay.portlet.bookmarks.util.comparator.EntryNameComparator;
30 import com.liferay.portlet.bookmarks.util.comparator.EntryPriorityComparator;
31 import com.liferay.portlet.bookmarks.util.comparator.EntryURLComparator;
32 import com.liferay.portlet.bookmarks.util.comparator.EntryVisitsComparator;
33
34 import java.util.Collections;
35 import java.util.List;
36
37 import javax.portlet.PortletURL;
38 import javax.portlet.RenderResponse;
39
40 import javax.servlet.http.HttpServletRequest;
41
42
47 public class BookmarksUtil {
48
49 public static void addPortletBreadcrumbEntries(
50 BookmarksEntry entry, HttpServletRequest request,
51 RenderResponse renderResponse)
52 throws Exception {
53
54 BookmarksFolder folder = entry.getFolder();
55
56 addPortletBreadcrumbEntries(folder, request, renderResponse);
57
58 PortletURL portletURL = renderResponse.createRenderURL();
59
60 portletURL.setParameter("struts_action", "/bookmarks/view_entry");
61 portletURL.setParameter("entryId", String.valueOf(entry.getEntryId()));
62
63 PortalUtil.addPortletBreadcrumbEntry(
64 request, entry.getName(), portletURL.toString());
65 }
66
67 public static void addPortletBreadcrumbEntries(
68 long folderId, HttpServletRequest request,
69 RenderResponse renderResponse)
70 throws Exception {
71
72 if (folderId == BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
73 return;
74 }
75
76 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
77 folderId);
78
79 addPortletBreadcrumbEntries(folder, request, renderResponse);
80 }
81
82 public static void addPortletBreadcrumbEntries(
83 BookmarksFolder folder, HttpServletRequest request,
84 RenderResponse renderResponse)
85 throws Exception {
86
87 String strutsAction = ParamUtil.getString(
88 request, "struts_action");
89
90 boolean selectFolder = strutsAction.equals("/bookmarks/select_folder");
91
92 PortletURL portletURL = renderResponse.createRenderURL();
93
94 if (selectFolder) {
95 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
96 WebKeys.THEME_DISPLAY);
97
98 portletURL.setWindowState(LiferayWindowState.POP_UP);
99
100 portletURL.setParameter(
101 "struts_action", "/bookmarks/select_folder");
102
103 PortalUtil.addPortletBreadcrumbEntry(
104 request, themeDisplay.translate("bookmarks-home"),
105 portletURL.toString());
106 }
107 else {
108 portletURL.setParameter("struts_action", "/bookmarks/view");
109 }
110
111 List<BookmarksFolder> ancestorFolders = folder.getAncestors();
112
113 Collections.reverse(ancestorFolders);
114
115 for (BookmarksFolder ancestorFolder : ancestorFolders) {
116 portletURL.setParameter(
117 "folderId", String.valueOf(ancestorFolder.getFolderId()));
118
119 PortalUtil.addPortletBreadcrumbEntry(
120 request, ancestorFolder.getName(), portletURL.toString());
121 }
122
123 portletURL.setParameter(
124 "folderId", String.valueOf(folder.getFolderId()));
125
126 PortalUtil.addPortletBreadcrumbEntry(
127 request, folder.getName(), portletURL.toString());
128 }
129
130 public static OrderByComparator getEntriesOrderByComparator(
131 String orderByCol, String orderByType) {
132
133 boolean orderByAsc = false;
134
135 if (orderByType.equals("asc")) {
136 orderByAsc = true;
137 }
138
139 OrderByComparator orderByComparator = null;
140
141 if (orderByCol.equals("create-date")) {
142 orderByComparator = new EntryCreateDateComparator(orderByAsc);
143 }
144 else if (orderByCol.equals("modified-date")) {
145 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
146 }
147 else if (orderByCol.equals("name")) {
148 orderByComparator = new EntryNameComparator(orderByAsc);
149 }
150 else if (orderByCol.equals("priority")) {
151 orderByComparator = new EntryPriorityComparator(orderByAsc);
152 }
153 else if (orderByCol.equals("url")) {
154 orderByComparator = new EntryURLComparator(orderByAsc);
155 }
156 else if (orderByCol.equals("visits")) {
157 orderByComparator = new EntryVisitsComparator(orderByAsc);
158 }
159
160 return orderByComparator;
161 }
162
163 }