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("struts_action", "/bookmarks/select_folder");
97 }
98 else {
99 foldersURL.setWindowState(WindowState.MAXIMIZED);
100
101 foldersURL.setParameter("struts_action", "/bookmarks/view");
102 }
103
104 String foldersLink =
105 "<a href=\"" + foldersURL.toString() + "\">" +
106 LanguageUtil.get(pageContext, "folders") + "</a>";
107
108 if (folder == null) {
109 return foldersLink;
110 }
111
112 String breadcrumbs = StringPool.BLANK;
113
114 if (folder != null) {
115 for (int i = 0;; i++) {
116 folder = folder.toEscapedModel();
117
118 PortletURL portletURL = res.createRenderURL();
119
120 if (windowState.equals(LiferayWindowState.POP_UP)) {
121 portletURL.setWindowState(LiferayWindowState.POP_UP);
122
123 portletURL.setParameter(
124 "struts_action", "/bookmarks/select_folder");
125 portletURL.setParameter(
126 "folderId", String.valueOf(folder.getFolderId()));
127 }
128 else {
129 portletURL.setWindowState(WindowState.MAXIMIZED);
130
131 portletURL.setParameter("struts_action", "/bookmarks/view");
132 portletURL.setParameter(
133 "folderId", String.valueOf(folder.getFolderId()));
134 }
135
136 String folderLink =
137 "<a href=\"" + portletURL.toString() + "\">" +
138 folder.getName() + "</a>";
139
140 if (i == 0) {
141 breadcrumbs = folderLink;
142 }
143 else {
144 breadcrumbs = folderLink + " » " + breadcrumbs;
145 }
146
147 if (folder.isRoot()) {
148 break;
149 }
150
151 folder = BookmarksFolderLocalServiceUtil.getFolder(
152 folder.getParentFolderId());
153 }
154 }
155
156 breadcrumbs = foldersLink + " » " + breadcrumbs;
157
158 if (entry != null) {
159 entry = entry.toEscapedModel();
160
161 PortletURL entryURL = res.createRenderURL();
162
163 entryURL.setWindowState(WindowState.MAXIMIZED);
164
165 entryURL.setParameter("struts_action", "/bookmarks/edit_entry");
166 entryURL.setParameter(
167 "entryId", String.valueOf(entry.getEntryId()));
168
169 String entryLink =
170 "<a href=\"" + entryURL.toString() + "\">" +
171 entry.getEntryId() + "</a>";
172
173 breadcrumbs = breadcrumbs + " » " + entryLink;
174 }
175
176 return breadcrumbs;
177 }
178
179 public static OrderByComparator getEntriesOrderByComparator(
180 String orderByCol, String orderByType) {
181
182 boolean orderByAsc = false;
183
184 if (orderByType.equals("asc")) {
185 orderByAsc = true;
186 }
187
188 OrderByComparator orderByComparator = null;
189
190 if (orderByCol.equals("create-date")) {
191 orderByComparator = new EntryCreateDateComparator(orderByAsc);
192 }
193 else if (orderByCol.equals("modified-date")) {
194 orderByComparator = new EntryModifiedDateComparator(orderByAsc);
195 }
196 else if (orderByCol.equals("name")) {
197 orderByComparator = new EntryNameComparator(orderByAsc);
198 }
199 else if (orderByCol.equals("priority")) {
200 orderByComparator = new EntryPriorityComparator(orderByAsc);
201 }
202 else if (orderByCol.equals("url")) {
203 orderByComparator = new EntryURLComparator(orderByAsc);
204 }
205 else if (orderByCol.equals("visits")) {
206 orderByComparator = new EntryVisitsComparator(orderByAsc);
207 }
208
209 return orderByComparator;
210 }
211
212 }