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 foldersLink;
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 breadcrumbs = folderLink;
149 }
150 else {
151 breadcrumbs = folderLink + " » " + breadcrumbs;
152 }
153
154 if (folder.isRoot()) {
155 break;
156 }
157
158 folder = BookmarksFolderLocalServiceUtil.getFolder(
159 folder.getParentFolderId());
160 }
161 }
162
163 breadcrumbs = foldersLink + " » " + breadcrumbs;
164
165 if (entry != null) {
166 entry = entry.toEscapedModel();
167
168 PortletURL entryURL = renderResponse.createRenderURL();
169
170
172 entryURL.setParameter("struts_action", "/bookmarks/edit_entry");
173 entryURL.setParameter(
174 "entryId", String.valueOf(entry.getEntryId()));
175
176 String entryLink =
177 "<a href=\"" + entryURL.toString() + "\">" +
178 entry.getEntryId() + "</a>";
179
180 breadcrumbs = breadcrumbs + " » " + entryLink;
181 }
182
183 return breadcrumbs;
184 }
185
186 public static OrderByComparator getEntriesOrderByComparator(
187 String orderByCol, String orderByType) {
188
189 boolean orderByAsc = false;
190
191 if (orderByType.equals("asc")) {
192 orderByAsc = true;
193 }
194
195 OrderByComparator orderByComparator = null;
196
197 if (orderByCol.equals("create-date")) {
198 orderByComparator = new EntryCreateDateComparator(orderByAsc);
199 }
200 else if (orderByCol.equals("modified-date")) {
201 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
202 }
203 else if (orderByCol.equals("name")) {
204 orderByComparator = new EntryNameComparator(orderByAsc);
205 }
206 else if (orderByCol.equals("priority")) {
207 orderByComparator = new EntryPriorityComparator(orderByAsc);
208 }
209 else if (orderByCol.equals("url")) {
210 orderByComparator = new EntryURLComparator(orderByAsc);
211 }
212 else if (orderByCol.equals("visits")) {
213 orderByComparator = new EntryVisitsComparator(orderByAsc);
214 }
215
216 return orderByComparator;
217 }
218
219 }