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