001
014
015 package com.liferay.portlet.documentlibrary.asset;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
020 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
021 import com.liferay.portal.kernel.repository.model.FileEntry;
022 import com.liferay.portal.kernel.repository.model.FileVersion;
023 import com.liferay.portal.kernel.util.HtmlUtil;
024 import com.liferay.portal.security.permission.ActionKeys;
025 import com.liferay.portal.security.permission.PermissionChecker;
026 import com.liferay.portal.theme.ThemeDisplay;
027 import com.liferay.portal.util.PortletKeys;
028 import com.liferay.portal.util.PropsValues;
029 import com.liferay.portal.util.WebKeys;
030 import com.liferay.portlet.asset.model.BaseAssetRenderer;
031 import com.liferay.portlet.documentlibrary.model.DLFileEntryConstants;
032 import com.liferay.portlet.documentlibrary.service.permission.DLFileEntryPermission;
033
034 import java.util.Locale;
035
036 import javax.portlet.PortletRequest;
037 import javax.portlet.PortletURL;
038 import javax.portlet.RenderRequest;
039 import javax.portlet.RenderResponse;
040
041
046 public class DLFileEntryAssetRenderer extends BaseAssetRenderer {
047
048 public DLFileEntryAssetRenderer(
049 FileEntry fileEntry, FileVersion fileVersion) {
050
051 _fileEntry = fileEntry;
052 _fileVersion = fileVersion;
053 }
054
055 public long getClassPK() {
056 if (!_fileVersion.isApproved() &&
057 !_fileVersion.getVersion().equals(
058 DLFileEntryConstants.VERSION_DEFAULT)) {
059
060 return _fileVersion.getFileVersionId();
061 }
062 else {
063 return _fileEntry.getFileEntryId();
064 }
065 }
066
067 @Override
068 public String getDiscussionPath() {
069 if (PropsValues.DL_FILE_ENTRY_COMMENTS_ENABLED) {
070 return "edit_file_entry_discussion";
071 }
072 else {
073 return null;
074 }
075 }
076
077 public long getGroupId() {
078 return _fileEntry.getGroupId();
079 }
080
081 public String getSummary(Locale locale) {
082 return HtmlUtil.stripHtml(_fileEntry.getDescription());
083 }
084
085 public String getTitle(Locale locale) {
086 return _fileVersion.getTitle();
087 }
088
089 @Override
090 public PortletURL getURLEdit(
091 LiferayPortletRequest liferayPortletRequest,
092 LiferayPortletResponse liferayPortletResponse)
093 throws Exception {
094
095 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
096 getControlPanelPlid(liferayPortletRequest),
097 PortletKeys.DOCUMENT_LIBRARY, PortletRequest.RENDER_PHASE);
098
099 portletURL.setParameter(
100 "struts_action", "/document_library/edit_file_entry");
101 portletURL.setParameter(
102 "fileEntryId", String.valueOf(_fileEntry.getFileEntryId()));
103
104 return portletURL;
105 }
106
107 @Override
108 public PortletURL getURLExport(
109 LiferayPortletRequest liferayPortletRequest,
110 LiferayPortletResponse liferayPortletResponse) {
111
112 PortletURL portletURL = liferayPortletResponse.createActionURL();
113
114 portletURL.setParameter("struts_action", "/asset_publisher/get_file");
115 portletURL.setParameter(
116 "groupId", String.valueOf(_fileEntry.getRepositoryId()));
117 portletURL.setParameter(
118 "folderId", String.valueOf(_fileEntry.getFolderId()));
119 portletURL.setParameter("title", String.valueOf(_fileEntry.getTitle()));
120
121 return portletURL;
122 }
123
124 @Override
125 public String getURLViewInContext(
126 LiferayPortletRequest liferayPortletRequest,
127 LiferayPortletResponse liferayPortletResponse,
128 String noSuchEntryRedirect) {
129
130 return getURLViewInContext(
131 liferayPortletRequest, noSuchEntryRedirect,
132 "/document_library/find_file_entry", "fileEntryId",
133 _fileEntry.getFileEntryId());
134 }
135
136 public long getUserId() {
137 return _fileEntry.getUserId();
138 }
139
140 public String getUserName() {
141 return _fileEntry.getUserName();
142 }
143
144 public String getUuid() {
145 return _fileEntry.getUuid();
146 }
147
148 @Override
149 public boolean hasEditPermission(PermissionChecker permissionChecker)
150 throws PortalException, SystemException {
151
152 return DLFileEntryPermission.contains(
153 permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.UPDATE);
154 }
155
156 @Override
157 public boolean hasViewPermission(PermissionChecker permissionChecker)
158 throws PortalException, SystemException {
159
160 return DLFileEntryPermission.contains(
161 permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.VIEW);
162 }
163
164 @Override
165 public boolean isConvertible() {
166 return true;
167 }
168
169 @Override
170 public boolean isPrintable() {
171 return false;
172 }
173
174 public String render(
175 RenderRequest renderRequest, RenderResponse renderResponse,
176 String template)
177 throws Exception {
178
179 if (template.equals(TEMPLATE_ABSTRACT) ||
180 template.equals(TEMPLATE_FULL_CONTENT)) {
181
182 renderRequest.setAttribute(
183 WebKeys.DOCUMENT_LIBRARY_FILE_ENTRY, _fileEntry);
184 renderRequest.setAttribute(
185 WebKeys.DOCUMENT_LIBRARY_FILE_VERSION, _fileVersion);
186
187 return "/html/portlet/document_library/asset/" + template + ".jsp";
188 }
189 else {
190 return null;
191 }
192 }
193
194 @Override
195 protected String getIconPath(ThemeDisplay themeDisplay) {
196 return themeDisplay.getPathThemeImages() + "/file_system/small/" +
197 _fileEntry.getIcon() + ".png";
198 }
199
200 private FileEntry _fileEntry;
201 private FileVersion _fileVersion;
202
203 }