001
014
015 package com.liferay.portlet.bookmarks.asset;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
018 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
019 import com.liferay.portal.kernel.trash.TrashRenderer;
020 import com.liferay.portal.kernel.util.HtmlUtil;
021 import com.liferay.portal.kernel.workflow.WorkflowConstants;
022 import com.liferay.portal.theme.ThemeDisplay;
023 import com.liferay.portal.util.PortletKeys;
024 import com.liferay.portal.util.WebKeys;
025 import com.liferay.portlet.asset.model.AssetRendererFactory;
026 import com.liferay.portlet.asset.model.BaseAssetRenderer;
027 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
028 import com.liferay.portlet.bookmarks.service.BookmarksEntryServiceUtil;
029 import com.liferay.portlet.bookmarks.service.BookmarksFolderServiceUtil;
030 import com.liferay.portlet.trash.util.TrashUtil;
031
032 import java.util.Date;
033 import java.util.Locale;
034
035 import javax.portlet.PortletRequest;
036 import javax.portlet.PortletURL;
037 import javax.portlet.RenderRequest;
038 import javax.portlet.RenderResponse;
039 import javax.portlet.WindowState;
040
041
045 public class BookmarksFolderAssetRenderer
046 extends BaseAssetRenderer implements TrashRenderer {
047
048 public static final String TYPE = "bookmarks_folder";
049
050 public BookmarksFolderAssetRenderer(BookmarksFolder folder) {
051 _folder = folder;
052 }
053
054 public String getClassName() {
055 return BookmarksFolder.class.getName();
056 }
057
058 public long getClassPK() {
059 return _folder.getFolderId();
060 }
061
062 @Override
063 public Date getDisplayDate() {
064 return _folder.getModifiedDate();
065 }
066
067 public long getGroupId() {
068 return _folder.getGroupId();
069 }
070
071 @Override
072 public String getIconPath(ThemeDisplay themeDisplay) {
073 try {
074 if (BookmarksFolderServiceUtil.getFoldersAndEntriesCount(
075 _folder.getGroupId(), _folder.getFolderId(),
076 WorkflowConstants.STATUS_APPROVED) > 0) {
077
078 return themeDisplay.getPathThemeImages() +
079 "/common/folder_full_document.png";
080 }
081 }
082 catch (Exception e) {
083 }
084
085 return themeDisplay.getPathThemeImages() + "/common/folder_empty.png";
086 }
087
088 public String getPortletId() {
089 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
090
091 return assetRendererFactory.getPortletId();
092 }
093
094 public String getSummary(Locale locale) {
095 return HtmlUtil.stripHtml(_folder.getDescription());
096 }
097
098 @Override
099 public String getThumbnailPath(PortletRequest portletRequest)
100 throws Exception {
101
102 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
103 WebKeys.THEME_DISPLAY);
104
105 int entriesCount = BookmarksEntryServiceUtil.getEntriesCount(
106 _folder.getGroupId(), _folder.getFolderId());
107 int foldersCount = BookmarksFolderServiceUtil.getFoldersCount(
108 _folder.getGroupId(), _folder.getFolderId());
109
110 if ((entriesCount > 0) || (foldersCount > 0)) {
111 return themeDisplay.getPathThemeImages() +
112 "/file_system/large/folder_full_bookmark.png";
113 }
114
115 return themeDisplay.getPathThemeImages() +
116 "/file_system/large/folder_empty.png";
117 }
118
119 public String getTitle(Locale locale) {
120 return TrashUtil.getOriginalTitle(_folder.getName());
121 }
122
123 public String getType() {
124 return TYPE;
125 }
126
127 @Override
128 public PortletURL getURLEdit(
129 LiferayPortletRequest liferayPortletRequest,
130 LiferayPortletResponse liferayPortletResponse)
131 throws Exception {
132
133 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
134 getControlPanelPlid(liferayPortletRequest), PortletKeys.BOOKMARKS,
135 PortletRequest.RENDER_PHASE);
136
137 portletURL.setParameter("struts_action", "/bookmarks/edit_folder");
138 portletURL.setParameter(
139 "folderId", String.valueOf(_folder.getFolderId()));
140
141 return portletURL;
142 }
143
144 @Override
145 public PortletURL getURLView(
146 LiferayPortletResponse liferayPortletResponse,
147 WindowState windowState)
148 throws Exception {
149
150 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
151 PortletKeys.BOOKMARKS, PortletRequest.RENDER_PHASE);
152
153 portletURL.setParameter("struts_action", "/bookmarks/view");
154 portletURL.setParameter(
155 "folderId", String.valueOf(_folder.getFolderId()));
156 portletURL.setWindowState(windowState);
157
158 return portletURL;
159 }
160
161 @Override
162 public String getURLViewInContext(
163 LiferayPortletRequest liferayPortletRequest,
164 LiferayPortletResponse liferayPortletResponse,
165 String noSuchEntryRedirect) {
166
167 return getURLViewInContext(
168 liferayPortletRequest, noSuchEntryRedirect,
169 "/bookmarks/find_folder", "folderId", _folder.getFolderId());
170 }
171
172 public long getUserId() {
173 return _folder.getUserId();
174 }
175
176 public String getUserName() {
177 return _folder.getUserName();
178 }
179
180 public String getUuid() {
181 return _folder.getUuid();
182 }
183
184 public String render(
185 RenderRequest renderRequest, RenderResponse renderResponse,
186 String template)
187 throws Exception {
188
189 if (template.equals(TEMPLATE_FULL_CONTENT)) {
190 renderRequest.setAttribute(WebKeys.BOOKMARKS_FOLDER, _folder);
191
192 return "/html/portlet/bookmarks/asset/folder_" + template + ".jsp";
193 }
194 else {
195 return null;
196 }
197 }
198
199 private BookmarksFolder _folder;
200
201 }