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
74 return;
75 }
76
77 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
78 folderId);
79
80 addPortletBreadcrumbEntries(folder, request, renderResponse);
81 }
82
83 public static void addPortletBreadcrumbEntries(
84 BookmarksFolder folder, HttpServletRequest request,
85 RenderResponse renderResponse)
86 throws Exception {
87
88 String strutsAction = ParamUtil.getString(
89 request, "struts_action");
90
91 boolean selectFolder = strutsAction.equals("/bookmarks/select_folder");
92
93 PortletURL portletURL = renderResponse.createRenderURL();
94
95 if (selectFolder) {
96 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
97 WebKeys.THEME_DISPLAY);
98
99 portletURL.setWindowState(LiferayWindowState.POP_UP);
100
101 portletURL.setParameter(
102 "struts_action", "/bookmarks/select_folder");
103
104 PortalUtil.addPortletBreadcrumbEntry(
105 request, themeDisplay.translate("bookmarks-home"),
106 portletURL.toString());
107 }
108 else {
109 portletURL.setParameter("struts_action", "/bookmarks/view");
110 }
111
112 List<BookmarksFolder> ancestorFolders = folder.getAncestors();
113
114 Collections.reverse(ancestorFolders);
115
116 for (BookmarksFolder ancestorFolder : ancestorFolders) {
117 portletURL.setParameter(
118 "folderId", String.valueOf(ancestorFolder.getFolderId()));
119
120 PortalUtil.addPortletBreadcrumbEntry(
121 request, ancestorFolder.getName(), portletURL.toString());
122 }
123
124 portletURL.setParameter(
125 "folderId", String.valueOf(folder.getFolderId()));
126
127 PortalUtil.addPortletBreadcrumbEntry(
128 request, folder.getName(), portletURL.toString());
129 }
130
131 public static OrderByComparator getEntriesOrderByComparator(
132 String orderByCol, String orderByType) {
133
134 boolean orderByAsc = false;
135
136 if (orderByType.equals("asc")) {
137 orderByAsc = true;
138 }
139
140 OrderByComparator orderByComparator = null;
141
142 if (orderByCol.equals("create-date")) {
143 orderByComparator = new EntryCreateDateComparator(orderByAsc);
144 }
145 else if (orderByCol.equals("modified-date")) {
146 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
147 }
148 else if (orderByCol.equals("name")) {
149 orderByComparator = new EntryNameComparator(orderByAsc);
150 }
151 else if (orderByCol.equals("priority")) {
152 orderByComparator = new EntryPriorityComparator(orderByAsc);
153 }
154 else if (orderByCol.equals("url")) {
155 orderByComparator = new EntryURLComparator(orderByAsc);
156 }
157 else if (orderByCol.equals("visits")) {
158 orderByComparator = new EntryVisitsComparator(orderByAsc);
159 }
160
161 return orderByComparator;
162 }
163
164 }