001
014
015 package com.liferay.portlet.asset.model;
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.portlet.LiferayPortletURL;
022 import com.liferay.portal.kernel.util.HttpUtil;
023 import com.liferay.portal.kernel.util.LocaleUtil;
024 import com.liferay.portal.kernel.util.ParamUtil;
025 import com.liferay.portal.kernel.util.StringBundler;
026 import com.liferay.portal.kernel.util.StringPool;
027 import com.liferay.portal.kernel.util.Validator;
028 import com.liferay.portal.kernel.util.WebKeys;
029 import com.liferay.portal.kernel.workflow.WorkflowConstants;
030 import com.liferay.portal.model.Group;
031 import com.liferay.portal.model.Layout;
032 import com.liferay.portal.security.permission.PermissionChecker;
033 import com.liferay.portal.theme.PortletDisplay;
034 import com.liferay.portal.theme.ThemeDisplay;
035 import com.liferay.portal.util.PortalUtil;
036 import com.liferay.portal.util.PortletKeys;
037 import com.liferay.portlet.asset.AssetRendererFactoryRegistryUtil;
038 import com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil;
039 import com.liferay.portlet.assetpublisher.util.AssetPublisherUtil;
040 import com.liferay.portlet.trash.util.TrashUtil;
041
042 import java.util.Date;
043 import java.util.Locale;
044
045 import javax.portlet.PortletMode;
046 import javax.portlet.PortletPreferences;
047 import javax.portlet.PortletRequest;
048 import javax.portlet.PortletResponse;
049 import javax.portlet.PortletURL;
050 import javax.portlet.RenderRequest;
051 import javax.portlet.RenderResponse;
052 import javax.portlet.WindowState;
053
054
058 public abstract class BaseAssetRenderer implements AssetRenderer {
059
060 @Override
061 public String getAddToPagePortletId() throws Exception {
062 return PortletKeys.ASSET_PUBLISHER;
063 }
064
065 public AssetRendererFactory getAssetRendererFactory() {
066 if (_assetRendererFactory != null) {
067 return _assetRendererFactory;
068 }
069
070 _assetRendererFactory =
071 AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName(
072 getClassName());
073
074 return _assetRendererFactory;
075 }
076
077 @Override
078 public int getAssetRendererType() {
079 return _assetRendererType;
080 }
081
082 @Override
083 public String[] getAvailableLanguageIds() {
084 return _AVAILABLE_LANGUAGE_IDS;
085 }
086
087
090 @Override
091 public String[] getAvailableLocales() {
092 return getAvailableLanguageIds();
093 }
094
095 @Override
096 public String getDiscussionPath() {
097 return null;
098 }
099
100 @Override
101 public Date getDisplayDate() {
102 return null;
103 }
104
105 @Override
106 public String getIconPath(PortletRequest portletRequest) {
107 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
108 WebKeys.THEME_DISPLAY);
109
110 return getIconPath(themeDisplay);
111 }
112
113 @Override
114 public String getNewName(String oldName, String token) {
115 return TrashUtil.getNewName(oldName, token);
116 }
117
118 @Override
119 public String getPreviewPath(
120 PortletRequest portletRequest, PortletResponse PortletResponse)
121 throws Exception {
122
123 return "/html/portlet/asset_publisher/display/preview.jsp";
124 }
125
126 @Override
127 public String getSearchSummary(Locale locale) {
128 return getSummary(null, null);
129 }
130
131 @Override
132 public int getStatus() {
133 return WorkflowConstants.STATUS_APPROVED;
134 }
135
136
140 @Deprecated
141 @Override
142 public String getSummary(Locale locale) {
143 throw new UnsupportedOperationException();
144 }
145
146 @Override
147 public String getSummary(
148 PortletRequest portletRequest, PortletResponse portletResponse) {
149
150 return getSummary(getLocale(portletRequest));
151 }
152
153 @Override
154 public String getThumbnailPath(PortletRequest portletRequest)
155 throws Exception {
156
157 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
158 WebKeys.THEME_DISPLAY);
159
160 return themeDisplay.getPathThemeImages() +
161 "/file_system/large/default.png";
162 }
163
164 @Override
165 public String getURLDownload(ThemeDisplay themeDisplay) {
166 return null;
167 }
168
169 @Override
170 public PortletURL getURLEdit(
171 LiferayPortletRequest liferayPortletRequest,
172 LiferayPortletResponse liferayPortletResponse)
173 throws Exception {
174
175 return null;
176 }
177
178 @Override
179 public PortletURL getURLEdit(
180 LiferayPortletRequest liferayPortletRequest,
181 LiferayPortletResponse liferayPortletResponse,
182 WindowState windowState, PortletURL redirectURL)
183 throws Exception {
184
185 LiferayPortletURL editPortletURL = (LiferayPortletURL)getURLEdit(
186 liferayPortletRequest, liferayPortletResponse);
187
188 if (editPortletURL == null) {
189 return null;
190 }
191
192 ThemeDisplay themeDisplay =
193 (ThemeDisplay)liferayPortletRequest.getAttribute(
194 WebKeys.THEME_DISPLAY);
195
196 Group group = themeDisplay.getScopeGroup();
197
198 if (group.isLayout()) {
199 Layout layout = themeDisplay.getLayout();
200
201 group = layout.getGroup();
202 }
203
204 if (group.hasStagingGroup()) {
205 return null;
206 }
207
208 editPortletURL.setDoAsGroupId(getGroupId());
209
210 editPortletURL.setParameter("redirect", redirectURL.toString());
211
212 PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
213
214 String portletResource = ParamUtil.getString(
215 liferayPortletRequest, "portletResource", portletDisplay.getId());
216
217 if (Validator.isNotNull(portletResource)) {
218 editPortletURL.setParameter(
219 "referringPortletResource", portletResource);
220 }
221 else {
222 editPortletURL.setParameter(
223 "referringPortletResource", portletDisplay.getId());
224 }
225
226 editPortletURL.setPortletMode(PortletMode.VIEW);
227 editPortletURL.setRefererPlid(themeDisplay.getPlid());
228 editPortletURL.setWindowState(windowState);
229
230 return editPortletURL;
231 }
232
233 @Override
234 public PortletURL getURLExport(
235 LiferayPortletRequest liferayPortletRequest,
236 LiferayPortletResponse liferayPortletResponse)
237 throws Exception {
238
239 return null;
240 }
241
242 @Override
243 public String getURLImagePreview(PortletRequest portletRequest)
244 throws Exception {
245
246 return getThumbnailPath(portletRequest);
247 }
248
249 @Override
250 public String getUrlTitle() {
251 return null;
252 }
253
254 protected Locale getLocale(PortletRequest portletRequest) {
255 if (portletRequest != null) {
256 return portletRequest.getLocale();
257 }
258
259 return LocaleUtil.getMostRelevantLocale();
260 }
261
262 @Override
263 public PortletURL getURLView(
264 LiferayPortletResponse liferayPortletResponse,
265 WindowState windowState)
266 throws Exception {
267
268 return null;
269 }
270
271 @Override
272 public String getURLViewInContext(
273 LiferayPortletRequest liferayPortletRequest,
274 LiferayPortletResponse liferayPortletResponse,
275 String noSuchEntryRedirect)
276 throws Exception {
277
278 return null;
279 }
280
281 @Override
282 public String getViewInContextMessage() {
283 return "view-in-context";
284 }
285
286 @Override
287 @SuppressWarnings("unused")
288 public boolean hasEditPermission(PermissionChecker permissionChecker)
289 throws PortalException, SystemException {
290
291 return false;
292 }
293
294 @Override
295 @SuppressWarnings("unused")
296 public boolean hasViewPermission(PermissionChecker permissionChecker)
297 throws PortalException, SystemException {
298
299 return true;
300 }
301
302 @Override
303 public boolean isConvertible() {
304 return false;
305 }
306
307 @Override
308 public boolean isDisplayable() {
309 return true;
310 }
311
312 @Override
313 public boolean isLocalizable() {
314 return false;
315 }
316
317 @Override
318 public boolean isPreviewInContext() {
319 return false;
320 }
321
322 @Override
323 public boolean isPrintable() {
324 return false;
325 }
326
327 public String renderActions(
328 RenderRequest renderRequest, RenderResponse renderResponse)
329 throws Exception {
330
331 return null;
332 }
333
334 @Override
335 public void setAddToPagePreferences(
336 PortletPreferences preferences, String portletId,
337 ThemeDisplay themeDisplay)
338 throws Exception {
339
340 preferences.setValue("displayStyle", "full-content");
341 preferences.setValue(
342 "emailAssetEntryAddedEnabled", Boolean.FALSE.toString());
343 preferences.setValue("selectionStyle", "manual");
344 preferences.setValue("showAddContentButton", Boolean.FALSE.toString());
345
346 AssetEntry entry = AssetEntryLocalServiceUtil.getEntry(
347 getClassName(), getClassPK());
348
349 AssetPublisherUtil.addSelection(
350 themeDisplay, preferences, portletId, entry.getEntryId(), -1,
351 entry.getClassName());
352 }
353
354 public void setAssetRendererType(int assetRendererType) {
355 _assetRendererType = assetRendererType;
356 }
357
358 protected long getControlPanelPlid(
359 LiferayPortletRequest liferayPortletRequest)
360 throws PortalException, SystemException {
361
362 return PortalUtil.getControlPanelPlid(liferayPortletRequest);
363 }
364
365 protected long getControlPanelPlid(ThemeDisplay themeDisplay)
366 throws PortalException, SystemException {
367
368 return PortalUtil.getControlPanelPlid(themeDisplay.getCompanyId());
369 }
370
371 protected String getIconPath(ThemeDisplay themeDisplay) {
372 return themeDisplay.getPathThemeImages() + "/common/page.png";
373 }
374
375 protected String getURLViewInContext(
376 LiferayPortletRequest liferayPortletRequest, String noSuchEntryRedirect,
377 String path, String primaryKeyParameterName,
378 long primaryKeyParameterValue) {
379
380 ThemeDisplay themeDisplay =
381 (ThemeDisplay)liferayPortletRequest.getAttribute(
382 WebKeys.THEME_DISPLAY);
383
384 StringBundler sb = new StringBundler(11);
385
386 sb.append(themeDisplay.getPortalURL());
387 sb.append(themeDisplay.getPathMain());
388 sb.append(path);
389 sb.append("?p_l_id=");
390 sb.append(themeDisplay.getPlid());
391 sb.append("&noSuchEntryRedirect=");
392 sb.append(HttpUtil.encodeURL(noSuchEntryRedirect));
393 sb.append(StringPool.AMPERSAND);
394 sb.append(primaryKeyParameterName);
395 sb.append(StringPool.EQUAL);
396 sb.append(primaryKeyParameterValue);
397
398 return PortalUtil.addPreservedParameters(themeDisplay, sb.toString());
399 }
400
401 private static final String[] _AVAILABLE_LANGUAGE_IDS = new String[0];
402
403 private AssetRendererFactory _assetRendererFactory;
404 private int _assetRendererType = AssetRendererFactory.TYPE_LATEST_APPROVED;
405
406 }