1
14
15 package com.liferay.portlet.imagegallery.util;
16
17 import com.liferay.portal.kernel.portlet.LiferayWindowState;
18 import com.liferay.portal.kernel.util.ParamUtil;
19 import com.liferay.portal.theme.ThemeDisplay;
20 import com.liferay.portal.util.PortalUtil;
21 import com.liferay.portal.util.WebKeys;
22 import com.liferay.portlet.imagegallery.model.IGFolder;
23 import com.liferay.portlet.imagegallery.model.IGFolderConstants;
24 import com.liferay.portlet.imagegallery.model.IGImage;
25 import com.liferay.portlet.imagegallery.service.IGFolderLocalServiceUtil;
26
27 import java.util.Collections;
28 import java.util.List;
29
30 import javax.portlet.PortletURL;
31 import javax.portlet.RenderResponse;
32
33 import javax.servlet.http.HttpServletRequest;
34
35
40 public class IGUtil {
41
42 public static void addPortletBreadcrumbEntries(
43 IGImage image, HttpServletRequest request,
44 RenderResponse renderResponse)
45 throws Exception {
46
47 IGFolder folder = image.getFolder();
48
49 addPortletBreadcrumbEntries(folder, request, renderResponse);
50
51 PortletURL portletURL = renderResponse.createRenderURL();
52
53 portletURL.setParameter("struts_action", "/image_gallery/view_image");
54 portletURL.setParameter("imageId", String.valueOf(image.getImageId()));
55
56 PortalUtil.addPortletBreadcrumbEntry(
57 request, image.getName(), portletURL.toString());
58 }
59
60 public static void addPortletBreadcrumbEntries(
61 long folderId, HttpServletRequest request,
62 RenderResponse renderResponse)
63 throws Exception {
64
65 if (folderId == IGFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
66 return;
67 }
68
69 IGFolder folder = IGFolderLocalServiceUtil.getFolder(
70 folderId);
71
72 addPortletBreadcrumbEntries(folder, request, renderResponse);
73 }
74
75 public static void addPortletBreadcrumbEntries(
76 IGFolder folder, HttpServletRequest request,
77 RenderResponse renderResponse)
78 throws Exception {
79
80 String strutsAction = ParamUtil.getString(request, "struts_action");
81
82 PortletURL portletURL = renderResponse.createRenderURL();
83
84 if (strutsAction.equals("/journal/select_image_gallery") ||
85 strutsAction.equals("/image_gallery/select_folder")) {
86 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
87 WebKeys.THEME_DISPLAY);
88
89 portletURL.setWindowState(LiferayWindowState.POP_UP);
90
91 portletURL.setParameter("struts_action", strutsAction);
92
93 PortalUtil.addPortletBreadcrumbEntry(
94 request, themeDisplay.translate("image-home"),
95 portletURL.toString());
96 }
97 else {
98 portletURL.setParameter("struts_action", "/image_gallery/view");
99 }
100
101 List<IGFolder> ancestorFolders = folder.getAncestors();
102
103 Collections.reverse(ancestorFolders);
104
105 for (IGFolder ancestorFolder : ancestorFolders) {
106
107 portletURL.setParameter(
108 "folderId", String.valueOf(ancestorFolder.getFolderId()));
109
110 PortalUtil.addPortletBreadcrumbEntry(
111 request, ancestorFolder.getName(), portletURL.toString());
112 }
113
114 portletURL.setParameter(
115 "folderId", String.valueOf(folder.getFolderId()));
116
117 PortalUtil.addPortletBreadcrumbEntry(
118 request, folder.getName(), portletURL.toString());
119 }
120
121 }