1
22
23 package com.liferay.portlet.bookmarks.util;
24
25 import com.liferay.portal.kernel.language.LanguageUtil;
26 import com.liferay.portal.kernel.portlet.LiferayWindowState;
27 import com.liferay.portal.kernel.util.OrderByComparator;
28 import com.liferay.portal.kernel.util.ParamUtil;
29 import com.liferay.portal.kernel.util.StringPool;
30 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
31 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
32 import com.liferay.portlet.bookmarks.service.BookmarksEntryLocalServiceUtil;
33 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
34 import com.liferay.portlet.bookmarks.util.comparator.EntryCreateDateComparator;
35 import com.liferay.portlet.bookmarks.util.comparator.EntryModifiedDateComparator;
36 import com.liferay.portlet.bookmarks.util.comparator.EntryNameComparator;
37 import com.liferay.portlet.bookmarks.util.comparator.EntryPriorityComparator;
38 import com.liferay.portlet.bookmarks.util.comparator.EntryURLComparator;
39 import com.liferay.portlet.bookmarks.util.comparator.EntryVisitsComparator;
40
41 import javax.portlet.PortletURL;
42 import javax.portlet.RenderRequest;
43 import javax.portlet.RenderResponse;
44
45 import javax.servlet.jsp.PageContext;
46
47
52 public class BookmarksUtil {
53
54 public static String getBreadcrumbs(
55 long folderId, long entryId, PageContext pageContext,
56 RenderRequest renderRequest, RenderResponse renderResponse)
57 throws Exception {
58
59 if (entryId > 0) {
60 BookmarksEntry entry =
61 BookmarksEntryLocalServiceUtil.getEntry(entryId);
62
63 return getBreadcrumbs(
64 entry.getFolder(), entry, pageContext, renderRequest,
65 renderResponse);
66 }
67 else {
68 BookmarksFolder folder = null;
69
70 try {
71 folder = BookmarksFolderLocalServiceUtil.getFolder(folderId);
72 }
73 catch (Exception e) {
74 }
75
76 return getBreadcrumbs(
77 folder, null, pageContext, renderRequest, renderResponse);
78 }
79 }
80
81 public static String getBreadcrumbs(
82 BookmarksFolder folder, BookmarksEntry entry,
83 PageContext pageContext, RenderRequest renderRequest,
84 RenderResponse renderResponse)
85 throws Exception {
86
87 String strutsAction = ParamUtil.getString(
88 renderRequest, "struts_action");
89
90 boolean selectFolder = strutsAction.equals("/bookmarks/select_folder");
91
92 if ((entry != null) && (folder == null)) {
93 folder = entry.getFolder();
94 }
95
96 PortletURL foldersURL = renderResponse.createRenderURL();
97
98 if (selectFolder) {
99 foldersURL.setWindowState(LiferayWindowState.POP_UP);
100
101 foldersURL.setParameter(
102 "struts_action", "/bookmarks/select_folder");
103 }
104 else {
105
107 foldersURL.setParameter("struts_action", "/bookmarks/view");
108 }
109
110 String foldersLink =
111 "<a href=\"" + foldersURL.toString() + "\">" +
112 LanguageUtil.get(pageContext, "folders") + "</a>";
113
114 if (folder == null) {
115 return "<span class=\"first last\">" + foldersLink + "</span>";
116 }
117
118 String breadcrumbs = StringPool.BLANK;
119
120 if (folder != null) {
121 for (int i = 0;; i++) {
122 folder = folder.toEscapedModel();
123
124 PortletURL portletURL = renderResponse.createRenderURL();
125
126 if (selectFolder) {
127 portletURL.setWindowState(LiferayWindowState.POP_UP);
128
129 portletURL.setParameter(
130 "struts_action", "/bookmarks/select_folder");
131 portletURL.setParameter(
132 "folderId", String.valueOf(folder.getFolderId()));
133 }
134 else {
135
137 portletURL.setParameter("struts_action", "/bookmarks/view");
138 portletURL.setParameter(
139 "folderId", String.valueOf(folder.getFolderId()));
140 }
141
142 String folderLink =
143 "<a href=\"" + portletURL.toString() + "\">" +
144 folder.getName() + "</a>";
145
146 if (i == 0) {
147 if (entry != null) {
148 breadcrumbs += folderLink;
149 }
150 else {
151 breadcrumbs =
152 "<span class=\"last\">" + folderLink + "</span>";
153 }
154 }
155 else {
156 breadcrumbs = folderLink + " » " + breadcrumbs;
157 }
158
159 if (folder.isRoot()) {
160 break;
161 }
162
163 folder = BookmarksFolderLocalServiceUtil.getFolder(
164 folder.getParentFolderId());
165 }
166 }
167
168 breadcrumbs =
169 "<span class=\"first\">" + foldersLink + " » </span>" +
170 breadcrumbs;
171
172 if (entry != null) {
173 entry = entry.toEscapedModel();
174
175 PortletURL entryURL = renderResponse.createRenderURL();
176
177
179 entryURL.setParameter("struts_action", "/bookmarks/edit_entry");
180 entryURL.setParameter(
181 "entryId", String.valueOf(entry.getEntryId()));
182
183 String entryLink =
184 "<span class=\"last\"><a href=\"" + entryURL.toString() +
185 "\">" + entry.getEntryId() + "</a></span>";
186
187 breadcrumbs = breadcrumbs + " » " + entryLink;
188 }
189
190 return breadcrumbs;
191 }
192
193 public static OrderByComparator getEntriesOrderByComparator(
194 String orderByCol, String orderByType) {
195
196 boolean orderByAsc = false;
197
198 if (orderByType.equals("asc")) {
199 orderByAsc = true;
200 }
201
202 OrderByComparator orderByComparator = null;
203
204 if (orderByCol.equals("create-date")) {
205 orderByComparator = new EntryCreateDateComparator(orderByAsc);
206 }
207 else if (orderByCol.equals("modified-date")) {
208 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
209 }
210 else if (orderByCol.equals("name")) {
211 orderByComparator = new EntryNameComparator(orderByAsc);
212 }
213 else if (orderByCol.equals("priority")) {
214 orderByComparator = new EntryPriorityComparator(orderByAsc);
215 }
216 else if (orderByCol.equals("url")) {
217 orderByComparator = new EntryURLComparator(orderByAsc);
218 }
219 else if (orderByCol.equals("visits")) {
220 orderByComparator = new EntryVisitsComparator(orderByAsc);
221 }
222
223 return orderByComparator;
224 }
225
226 }