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