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.BookmarksCreateDateComparator;
34 import com.liferay.portlet.bookmarks.util.comparator.BookmarksModifiedDateComparator;
35 import com.liferay.portlet.bookmarks.util.comparator.BookmarksNameComparator;
36 import com.liferay.portlet.bookmarks.util.comparator.BookmarksPriorityComparator;
37 import com.liferay.portlet.bookmarks.util.comparator.BookmarksURLComparator;
38 import com.liferay.portlet.bookmarks.util.comparator.BookmarksVisitsComparator;
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 PortletURL portletURL = res.createRenderURL();
117
118 if (windowState.equals(LiferayWindowState.POP_UP)) {
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 portletURL.setWindowState(WindowState.MAXIMIZED);
128
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 breadcrumbs = folderLink;
140 }
141 else {
142 breadcrumbs = folderLink + " » " + breadcrumbs;
143 }
144
145 if (folder.isRoot()) {
146 break;
147 }
148
149 folder = BookmarksFolderLocalServiceUtil.getFolder(
150 folder.getParentFolderId());
151 }
152 }
153
154 breadcrumbs = foldersLink + " » " + breadcrumbs;
155
156 if (entry != null) {
157 PortletURL entryURL = res.createRenderURL();
158
159 entryURL.setWindowState(WindowState.MAXIMIZED);
160
161 entryURL.setParameter("struts_action", "/bookmarks/edit_entry");
162 entryURL.setParameter(
163 "entryId", String.valueOf(entry.getEntryId()));
164
165 String entryLink =
166 "<a href=\"" + entryURL.toString() + "\">" +
167 entry.getEntryId() + "</a>";
168
169 breadcrumbs = breadcrumbs + " » " + entryLink;
170 }
171
172 return breadcrumbs;
173 }
174
175 public static OrderByComparator getEntriesOrderByComparator(
176 String orderByCol, String orderByType) {
177
178 boolean orderByAsc = false;
179
180 if (orderByType.equals("asc")) {
181 orderByAsc = true;
182 }
183
184 OrderByComparator orderByComparator = null;
185
186 if (orderByCol.equals("create-date")) {
187 orderByComparator = new BookmarksCreateDateComparator(orderByAsc);
188 }
189 else if (orderByCol.equals("modified-date")) {
190 orderByComparator = new BookmarksModifiedDateComparator(orderByAsc);
191 }
192 else if (orderByCol.equals("name")) {
193 orderByComparator = new BookmarksNameComparator(orderByAsc);
194 }
195 else if (orderByCol.equals("priority")) {
196 orderByComparator = new BookmarksPriorityComparator(orderByAsc);
197 }
198 else if (orderByCol.equals("url")) {
199 orderByComparator = new BookmarksURLComparator(orderByAsc);
200 }
201 else if (orderByCol.equals("visits")) {
202 orderByComparator = new BookmarksVisitsComparator(orderByAsc);
203 }
204
205 return orderByComparator;
206 }
207
208 }