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