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