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.Locale;
033
034 import javax.portlet.PortletRequest;
035 import javax.portlet.PortletURL;
036 import javax.portlet.RenderRequest;
037 import javax.portlet.RenderResponse;
038 import javax.portlet.WindowState;
039
040
043 public class DLFolderAssetRenderer
044 extends BaseAssetRenderer implements TrashRenderer {
045
046 public static final String TYPE = "folder";
047
048 public DLFolderAssetRenderer(Folder folder) {
049 _folder = folder;
050 }
051
052 public String getAssetRendererFactoryClassName() {
053 return DLFolderAssetRendererFactory.CLASS_NAME;
054 }
055
056 public String getClassName() {
057 return DLFolder.class.getName();
058 }
059
060 public long getClassPK() {
061 return _folder.getPrimaryKey();
062 }
063
064 public long getGroupId() {
065 return _folder.getGroupId();
066 }
067
068 @Override
069 public String getIconPath(ThemeDisplay themeDisplay) {
070 try {
071 if (DLAppServiceUtil.getFoldersAndFileEntriesAndFileShortcutsCount(
072 _folder.getRepositoryId(), _folder.getFolderId(),
073 WorkflowConstants.STATUS_APPROVED, true) > 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),
111 PortletKeys.DOCUMENT_LIBRARY, PortletRequest.RENDER_PHASE);
112
113 portletURL.setParameter(
114 "struts_action", "/document_library/edit_folder");
115 portletURL.setParameter(
116 "folderId", String.valueOf(_folder.getFolderId()));
117
118 return portletURL;
119 }
120
121 @Override
122 public PortletURL getURLView(
123 LiferayPortletResponse liferayPortletResponse,
124 WindowState windowState)
125 throws Exception {
126
127 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
128 PortletKeys.DOCUMENT_LIBRARY, PortletRequest.RENDER_PHASE);
129
130 portletURL.setParameter("struts_action", "/document_library/view");
131 portletURL.setParameter(
132 "folderId", String.valueOf(_folder.getFolderId()));
133 portletURL.setWindowState(windowState);
134
135 return portletURL;
136 }
137
138 @Override
139 public String getURLViewInContext(
140 LiferayPortletRequest liferayPortletRequest,
141 LiferayPortletResponse liferayPortletResponse,
142 String noSuchEntryRedirect) {
143
144 return getURLViewInContext(
145 liferayPortletRequest, noSuchEntryRedirect,
146 "/document_library/find_folder", "folderId", _folder.getFolderId());
147 }
148
149 public long getUserId() {
150 return _folder.getUserId();
151 }
152
153 public String getUserName() {
154 return _folder.getUserName();
155 }
156
157 public String getUuid() {
158 return _folder.getUuid();
159 }
160
161 public String render(
162 RenderRequest renderRequest, RenderResponse renderResponse,
163 String template)
164 throws Exception {
165
166 if (template.equals(TEMPLATE_ABSTRACT) ||
167 template.equals(TEMPLATE_FULL_CONTENT)) {
168
169 renderRequest.setAttribute(
170 WebKeys.DOCUMENT_LIBRARY_FOLDER, _folder);
171
172 return "/html/portlet/document_library/asset/folder_" + template +
173 ".jsp";
174 }
175 else {
176 return null;
177 }
178 }
179
180 private Folder _folder;
181
182 }