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