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