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 getUuid() {
141 return _fileEntry.getUuid();
142 }
143
144 @Override
145 public boolean hasEditPermission(PermissionChecker permissionChecker)
146 throws PortalException, SystemException {
147
148 return DLFileEntryPermission.contains(
149 permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.UPDATE);
150 }
151
152 @Override
153 public boolean hasViewPermission(PermissionChecker permissionChecker)
154 throws PortalException, SystemException {
155
156 return DLFileEntryPermission.contains(
157 permissionChecker, _fileEntry.getFileEntryId(), ActionKeys.VIEW);
158 }
159
160 @Override
161 public boolean isConvertible() {
162 return true;
163 }
164
165 @Override
166 public boolean isPrintable() {
167 return false;
168 }
169
170 public String render(
171 RenderRequest renderRequest, RenderResponse renderResponse,
172 String template)
173 throws Exception {
174
175 if (template.equals(TEMPLATE_ABSTRACT) ||
176 template.equals(TEMPLATE_FULL_CONTENT)) {
177
178 renderRequest.setAttribute(
179 WebKeys.DOCUMENT_LIBRARY_FILE_ENTRY, _fileEntry);
180 renderRequest.setAttribute(
181 WebKeys.DOCUMENT_LIBRARY_FILE_VERSION, _fileVersion);
182
183 return "/html/portlet/document_library/asset/" + template + ".jsp";
184 }
185 else {
186 return null;
187 }
188 }
189
190 @Override
191 protected String getIconPath(ThemeDisplay themeDisplay) {
192 return themeDisplay.getPathThemeImages() + "/file_system/small/" +
193 _fileEntry.getIcon() + ".png";
194 }
195
196 private FileEntry _fileEntry;
197 private FileVersion _fileVersion;
198
199 }