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