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.StringPool;
29 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
30 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
31 import com.liferay.portlet.bookmarks.service.BookmarksEntryLocalServiceUtil;
32 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
33 import com.liferay.portlet.bookmarks.util.comparator.EntryCreateDateComparator;
34 import com.liferay.portlet.bookmarks.util.comparator.EntryModifiedDateComparator;
35 import com.liferay.portlet.bookmarks.util.comparator.EntryNameComparator;
36 import com.liferay.portlet.bookmarks.util.comparator.EntryPriorityComparator;
37 import com.liferay.portlet.bookmarks.util.comparator.EntryURLComparator;
38 import com.liferay.portlet.bookmarks.util.comparator.EntryVisitsComparator;
39
40 import javax.portlet.PortletURL;
41 import javax.portlet.RenderRequest;
42 import javax.portlet.RenderResponse;
43 import javax.portlet.WindowState;
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 req, RenderResponse res)
58 throws Exception {
59
60 if (entryId > 0) {
61 BookmarksEntry entry =
62 BookmarksEntryLocalServiceUtil.getEntry(entryId);
63
64 return getBreadcrumbs(
65 entry.getFolder(), entry, pageContext, req, res);
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(folder, null, pageContext, req, res);
77 }
78 }
79
80 public static String getBreadcrumbs(
81 BookmarksFolder folder, BookmarksEntry entry,
82 PageContext pageContext, RenderRequest req, RenderResponse res)
83 throws Exception {
84
85 if ((entry != null) && (folder == null)) {
86 folder = entry.getFolder();
87 }
88
89 PortletURL foldersURL = res.createRenderURL();
90
91 WindowState windowState = req.getWindowState();
92
93 if (windowState.equals(LiferayWindowState.POP_UP)) {
94 foldersURL.setWindowState(LiferayWindowState.POP_UP);
95
96 foldersURL.setParameter(
97 "struts_action", "/bookmarks/select_folder");
98 }
99 else {
100 foldersURL.setWindowState(WindowState.MAXIMIZED);
101
102 foldersURL.setParameter("struts_action", "/bookmarks/view");
103 }
104
105 String foldersLink =
106 "<a href=\"" + foldersURL.toString() + "\">" +
107 LanguageUtil.get(pageContext, "folders") + "</a>";
108
109 if (folder == null) {
110 return foldersLink;
111 }
112
113 String breadcrumbs = StringPool.BLANK;
114
115 if (folder != null) {
116 for (int i = 0;; i++) {
117 folder = folder.toEscapedModel();
118
119 PortletURL portletURL = res.createRenderURL();
120
121 if (windowState.equals(LiferayWindowState.POP_UP)) {
122 portletURL.setWindowState(LiferayWindowState.POP_UP);
123
124 portletURL.setParameter(
125 "struts_action", "/bookmarks/select_folder");
126 portletURL.setParameter(
127 "folderId", String.valueOf(folder.getFolderId()));
128 }
129 else {
130 portletURL.setWindowState(WindowState.MAXIMIZED);
131
132 portletURL.setParameter("struts_action", "/bookmarks/view");
133 portletURL.setParameter(
134 "folderId", String.valueOf(folder.getFolderId()));
135 }
136
137 String folderLink =
138 "<a href=\"" + portletURL.toString() + "\">" +
139 folder.getName() + "</a>";
140
141 if (i == 0) {
142 breadcrumbs = folderLink;
143 }
144 else {
145 breadcrumbs = folderLink + " » " + breadcrumbs;
146 }
147
148 if (folder.isRoot()) {
149 break;
150 }
151
152 folder = BookmarksFolderLocalServiceUtil.getFolder(
153 folder.getParentFolderId());
154 }
155 }
156
157 breadcrumbs = foldersLink + " » " + breadcrumbs;
158
159 if (entry != null) {
160 entry = entry.toEscapedModel();
161
162 PortletURL entryURL = res.createRenderURL();
163
164 entryURL.setWindowState(WindowState.MAXIMIZED);
165
166 entryURL.setParameter("struts_action", "/bookmarks/edit_entry");
167 entryURL.setParameter(
168 "entryId", String.valueOf(entry.getEntryId()));
169
170 String entryLink =
171 "<a href=\"" + entryURL.toString() + "\">" +
172 entry.getEntryId() + "</a>";
173
174 breadcrumbs = breadcrumbs + " » " + entryLink;
175 }
176
177 return breadcrumbs;
178 }
179
180 public static OrderByComparator getEntriesOrderByComparator(
181 String orderByCol, String orderByType) {
182
183 boolean orderByAsc = false;
184
185 if (orderByType.equals("asc")) {
186 orderByAsc = true;
187 }
188
189 OrderByComparator orderByComparator = null;
190
191 if (orderByCol.equals("create-date")) {
192 orderByComparator = new EntryCreateDateComparator(orderByAsc);
193 }
194 else if (orderByCol.equals("modified-date")) {
195 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
196 }
197 else if (orderByCol.equals("name")) {
198 orderByComparator = new EntryNameComparator(orderByAsc);
199 }
200 else if (orderByCol.equals("priority")) {
201 orderByComparator = new EntryPriorityComparator(orderByAsc);
202 }
203 else if (orderByCol.equals("url")) {
204 orderByComparator = new EntryURLComparator(orderByAsc);
205 }
206 else if (orderByCol.equals("visits")) {
207 orderByComparator = new EntryVisitsComparator(orderByAsc);
208 }
209
210 return orderByComparator;
211 }
212
213 }