001
014
015 package com.liferay.portlet.documentlibrary.asset;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
018 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
019 import com.liferay.portal.kernel.repository.model.Folder;
020 import com.liferay.portal.kernel.trash.TrashRenderer;
021 import com.liferay.portal.kernel.util.HtmlUtil;
022 import com.liferay.portal.kernel.workflow.WorkflowConstants;
023 import com.liferay.portal.theme.ThemeDisplay;
024 import com.liferay.portal.util.PortletKeys;
025 import com.liferay.portal.util.WebKeys;
026 import com.liferay.portlet.asset.model.AssetRendererFactory;
027 import com.liferay.portlet.asset.model.BaseAssetRenderer;
028 import com.liferay.portlet.documentlibrary.model.DLFolder;
029 import com.liferay.portlet.documentlibrary.service.DLAppServiceUtil;
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 DLFolderAssetRenderer
045 extends BaseAssetRenderer implements TrashRenderer {
046
047 public static final String TYPE = "folder";
048
049 public DLFolderAssetRenderer(Folder folder) {
050 _folder = folder;
051 }
052
053 public String getClassName() {
054 return DLFolder.class.getName();
055 }
056
057 public long getClassPK() {
058 return _folder.getPrimaryKey();
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 (DLAppServiceUtil.getFoldersAndFileEntriesAndFileShortcutsCount(
074 _folder.getRepositoryId(), _folder.getFolderId(),
075 WorkflowConstants.STATUS_APPROVED, true) > 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 foldersCount = DLAppServiceUtil.getFoldersCount(
105 _folder.getRepositoryId(), _folder.getFolderId());
106 int entriesCount =
107 DLAppServiceUtil.getFileEntriesAndFileShortcutsCount(
108 _folder.getRepositoryId(), _folder.getFolderId(),
109 WorkflowConstants.STATUS_APPROVED);
110
111 if ((entriesCount > 0) || (foldersCount > 0)) {
112 return themeDisplay.getPathThemeImages() +
113 "/file_system/large/folder_full_document.png";
114 }
115
116 return themeDisplay.getPathThemeImages() +
117 "/file_system/large/folder_empty.png";
118 }
119
120 public String getTitle(Locale locale) {
121 return TrashUtil.getOriginalTitle(_folder.getName());
122 }
123
124 public String getType() {
125 return TYPE;
126 }
127
128 @Override
129 public PortletURL getURLEdit(
130 LiferayPortletRequest liferayPortletRequest,
131 LiferayPortletResponse liferayPortletResponse)
132 throws Exception {
133
134 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
135 getControlPanelPlid(liferayPortletRequest),
136 PortletKeys.DOCUMENT_LIBRARY, PortletRequest.RENDER_PHASE);
137
138 portletURL.setParameter(
139 "struts_action", "/document_library/edit_folder");
140 portletURL.setParameter(
141 "folderId", String.valueOf(_folder.getFolderId()));
142
143 return portletURL;
144 }
145
146 @Override
147 public PortletURL getURLView(
148 LiferayPortletResponse liferayPortletResponse,
149 WindowState windowState)
150 throws Exception {
151
152 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
153 PortletKeys.DOCUMENT_LIBRARY, PortletRequest.RENDER_PHASE);
154
155 portletURL.setParameter("struts_action", "/document_library/view");
156 portletURL.setParameter(
157 "folderId", String.valueOf(_folder.getFolderId()));
158 portletURL.setWindowState(windowState);
159
160 return portletURL;
161 }
162
163 @Override
164 public String getURLViewInContext(
165 LiferayPortletRequest liferayPortletRequest,
166 LiferayPortletResponse liferayPortletResponse,
167 String noSuchEntryRedirect) {
168
169 return getURLViewInContext(
170 liferayPortletRequest, noSuchEntryRedirect,
171 "/document_library/find_folder", "folderId", _folder.getFolderId());
172 }
173
174 public long getUserId() {
175 return _folder.getUserId();
176 }
177
178 public String getUserName() {
179 return _folder.getUserName();
180 }
181
182 public String getUuid() {
183 return _folder.getUuid();
184 }
185
186 @Override
187 public boolean isDisplayable() {
188 if (_folder.isMountPoint()) {
189 return false;
190 }
191
192 return true;
193 }
194
195 public String render(
196 RenderRequest renderRequest, RenderResponse renderResponse,
197 String template)
198 throws Exception {
199
200 if (template.equals(TEMPLATE_ABSTRACT) ||
201 template.equals(TEMPLATE_FULL_CONTENT)) {
202
203 renderRequest.setAttribute(
204 WebKeys.DOCUMENT_LIBRARY_FOLDER, _folder);
205
206 return "/html/portlet/document_library/asset/folder_" + template +
207 ".jsp";
208 }
209 else {
210 return null;
211 }
212 }
213
214 private Folder _folder;
215
216 }