1
19
20 package com.liferay.portlet.imagegallery.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.StringPool;
25 import com.liferay.portlet.imagegallery.model.IGFolder;
26 import com.liferay.portlet.imagegallery.model.IGImage;
27 import com.liferay.portlet.imagegallery.service.IGFolderLocalServiceUtil;
28 import com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil;
29
30 import javax.portlet.PortletURL;
31 import javax.portlet.RenderRequest;
32 import javax.portlet.RenderResponse;
33 import javax.portlet.WindowState;
34
35 import javax.servlet.jsp.PageContext;
36
37
43 public class IGUtil {
44
45 public static String getBreadcrumbs(
46 long folderId, long imageId, PageContext pageContext,
47 RenderRequest renderRequest, RenderResponse renderResponse)
48 throws Exception {
49
50 if (imageId > 0) {
51 IGImage image = IGImageLocalServiceUtil.getImage(imageId);
52
53 return getBreadcrumbs(
54 image.getFolder(), image, pageContext, renderRequest,
55 renderResponse);
56 }
57 else {
58 IGFolder folder = null;
59
60 try {
61 folder = IGFolderLocalServiceUtil.getFolder(folderId);
62 }
63 catch (Exception e) {
64 }
65
66 return getBreadcrumbs(
67 folder, null, pageContext, renderRequest, renderResponse);
68 }
69 }
70
71 public static String getBreadcrumbs(
72 IGFolder folder, IGImage image, PageContext pageContext,
73 RenderRequest renderRequest, RenderResponse renderResponse)
74 throws Exception {
75
76 if ((image != null) && (folder == null)) {
77 folder = image.getFolder();
78 }
79
80 PortletURL foldersURL = renderResponse.createRenderURL();
81
82 WindowState windowState = renderRequest.getWindowState();
83
84 if (windowState.equals(LiferayWindowState.POP_UP)) {
85 foldersURL.setWindowState(LiferayWindowState.POP_UP);
86
87 foldersURL.setParameter(
88 "struts_action", "/image_gallery/select_folder");
89 }
90 else {
91
93 foldersURL.setParameter("struts_action", "/image_gallery/view");
94 }
95
96 String foldersLink =
97 "<a href=\"" + foldersURL.toString() + "\">" +
98 LanguageUtil.get(pageContext, "folders") + "</a>";
99
100 if (folder == null) {
101 return "<span class=\"first last\">" + foldersLink + "</span>";
102 }
103
104 String breadcrumbs = StringPool.BLANK;
105
106 if (folder != null) {
107 for (int i = 0;; i++) {
108 folder = folder.toEscapedModel();
109
110 PortletURL portletURL = renderResponse.createRenderURL();
111
112 if (windowState.equals(LiferayWindowState.POP_UP)) {
113 portletURL.setWindowState(LiferayWindowState.POP_UP);
114
115 portletURL.setParameter(
116 "struts_action", "/image_gallery/select_folder");
117 portletURL.setParameter(
118 "folderId", String.valueOf(folder.getFolderId()));
119 }
120 else {
121
123 portletURL.setParameter(
124 "struts_action", "/image_gallery/view");
125 portletURL.setParameter(
126 "folderId", String.valueOf(folder.getFolderId()));
127 }
128
129 String folderLink =
130 "<a href=\"" + portletURL.toString() + "\">" +
131 folder.getName() + "</a>";
132
133 if (i == 0) {
134 if (image != null) {
135 breadcrumbs += folderLink;
136 }
137 else {
138 breadcrumbs =
139 "<span class=\"last\">" + folderLink + "</span>";
140 }
141 }
142 else {
143 breadcrumbs = folderLink + " » " + breadcrumbs;
144 }
145
146 if (folder.isRoot()) {
147 break;
148 }
149
150 folder = IGFolderLocalServiceUtil.getFolder(
151 folder.getParentFolderId());
152 }
153 }
154
155 breadcrumbs =
156 "<span class=\"first\">" + foldersLink + " » </span>" +
157 breadcrumbs;
158
159 if (image != null) {
160 image = image.toEscapedModel();
161
162 PortletURL imageURL = renderResponse.createRenderURL();
163
164
166 imageURL.setParameter("struts_action", "/image_gallery/edit_image");
167 imageURL.setParameter(
168 "imageId", String.valueOf(image.getImageId()));
169
170 String imageLink =
171 "<span class=\"last\"><a href=\"" + imageURL.toString() +
172 "\">" + image.getImageId() + "</a></span>";
173
174 breadcrumbs = breadcrumbs + " » " + imageLink;
175 }
176
177 return breadcrumbs;
178 }
179
180 }