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 foldersURL.setWindowState(WindowState.MAXIMIZED);
95
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 foldersLink;
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 portletURL.setWindowState(WindowState.MAXIMIZED);
125
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 breadcrumbs = folderLink;
138 }
139 else {
140 breadcrumbs = folderLink + " » " + breadcrumbs;
141 }
142
143 if (folder.isRoot()) {
144 break;
145 }
146
147 folder = IGFolderLocalServiceUtil.getFolder(
148 folder.getParentFolderId());
149 }
150 }
151
152 breadcrumbs = foldersLink + " » " + breadcrumbs;
153
154 if (image != null) {
155 image = image.toEscapedModel();
156
157 PortletURL imageURL = renderResponse.createRenderURL();
158
159 imageURL.setWindowState(WindowState.MAXIMIZED);
160
161 imageURL.setParameter("struts_action", "/image_gallery/edit_image");
162 imageURL.setParameter(
163 "imageId", String.valueOf(image.getImageId()));
164
165 String imageLink =
166 "<a href=\"" + imageURL.toString() + "\">" +
167 image.getImageId() + "</a>";
168
169 breadcrumbs = breadcrumbs + " » " + imageLink;
170 }
171
172 return breadcrumbs;
173 }
174
175 }