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