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.BookmarksFolderServiceUtil;
029 import com.liferay.portlet.trash.util.TrashUtil;
030
031 import java.util.Locale;
032
033 import javax.portlet.PortletRequest;
034 import javax.portlet.PortletURL;
035 import javax.portlet.RenderRequest;
036 import javax.portlet.RenderResponse;
037 import javax.portlet.WindowState;
038
039
043 public class BookmarksFolderAssetRenderer
044 extends BaseAssetRenderer implements TrashRenderer {
045
046 public static final String TYPE = "bookmarks_folder";
047
048 public BookmarksFolderAssetRenderer(BookmarksFolder folder) {
049 _folder = folder;
050 }
051
052 public String getAssetRendererFactoryClassName() {
053 return BookmarksFolderAssetRendererFactory.CLASS_NAME;
054 }
055
056 public String getClassName() {
057 return BookmarksFolder.class.getName();
058 }
059
060 public long getClassPK() {
061 return _folder.getFolderId();
062 }
063
064 public long getGroupId() {
065 return _folder.getGroupId();
066 }
067
068 @Override
069 public String getIconPath(ThemeDisplay themeDisplay) {
070 try {
071 if (BookmarksFolderServiceUtil.getFoldersAndEntriesCount(
072 _folder.getGroupId(), _folder.getFolderId(),
073 WorkflowConstants.STATUS_APPROVED) > 0) {
074
075 return themeDisplay.getPathThemeImages() +
076 "/common/folder_full_document.png";
077 }
078 }
079 catch (Exception e) {
080 }
081
082 return themeDisplay.getPathThemeImages() + "/common/folder_empty.png";
083 }
084
085 public String getPortletId() {
086 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
087
088 return assetRendererFactory.getPortletId();
089 }
090
091 public String getSummary(Locale locale) {
092 return HtmlUtil.stripHtml(_folder.getDescription());
093 }
094
095 public String getTitle(Locale locale) {
096 return TrashUtil.getOriginalTitle(_folder.getName());
097 }
098
099 public String getType() {
100 return TYPE;
101 }
102
103 @Override
104 public PortletURL getURLEdit(
105 LiferayPortletRequest liferayPortletRequest,
106 LiferayPortletResponse liferayPortletResponse)
107 throws Exception {
108
109 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
110 getControlPanelPlid(liferayPortletRequest), PortletKeys.BOOKMARKS,
111 PortletRequest.RENDER_PHASE);
112
113 portletURL.setParameter("struts_action", "/bookmarks/edit_folder");
114 portletURL.setParameter(
115 "folderId", String.valueOf(_folder.getFolderId()));
116
117 return portletURL;
118 }
119
120 @Override
121 public PortletURL getURLView(
122 LiferayPortletResponse liferayPortletResponse,
123 WindowState windowState)
124 throws Exception {
125
126 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
127 PortletKeys.BOOKMARKS, PortletRequest.RENDER_PHASE);
128
129 portletURL.setParameter("struts_action", "/bookmarks/view");
130 portletURL.setParameter(
131 "folderId", String.valueOf(_folder.getFolderId()));
132 portletURL.setWindowState(windowState);
133
134 return portletURL;
135 }
136
137 @Override
138 public String getURLViewInContext(
139 LiferayPortletRequest liferayPortletRequest,
140 LiferayPortletResponse liferayPortletResponse,
141 String noSuchEntryRedirect) {
142
143 return getURLViewInContext(
144 liferayPortletRequest, noSuchEntryRedirect,
145 "/bookmarks/find_folder", "folderId", _folder.getFolderId());
146 }
147
148 public long getUserId() {
149 return _folder.getUserId();
150 }
151
152 public String getUserName() {
153 return _folder.getUserName();
154 }
155
156 public String getUuid() {
157 return _folder.getUuid();
158 }
159
160 public String render(
161 RenderRequest renderRequest, RenderResponse renderResponse,
162 String template)
163 throws Exception {
164
165 if (template.equals(TEMPLATE_FULL_CONTENT)) {
166 renderRequest.setAttribute(WebKeys.BOOKMARKS_FOLDER, _folder);
167
168 return "/html/portlet/bookmarks/asset/folder_" + template + ".jsp";
169 }
170 else {
171 return null;
172 }
173 }
174
175 private BookmarksFolder _folder;
176
177 }