1
14
15 package com.liferay.portal.kernel.workflow;
16
17 import com.liferay.portal.kernel.exception.PortalException;
18 import com.liferay.portal.kernel.exception.SystemException;
19 import com.liferay.portal.kernel.log.Log;
20 import com.liferay.portal.kernel.log.LogFactoryUtil;
21 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
22 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
23 import com.liferay.portal.kernel.util.WebKeys;
24 import com.liferay.portal.service.WorkflowInstanceLinkLocalServiceUtil;
25 import com.liferay.portal.theme.ThemeDisplay;
26 import com.liferay.portlet.asset.AssetRendererFactoryRegistryUtil;
27 import com.liferay.portlet.asset.model.AssetRenderer;
28 import com.liferay.portlet.asset.model.AssetRendererFactory;
29
30 import java.io.Serializable;
31
32 import java.util.Map;
33
34 import javax.portlet.PortletURL;
35
36
43 public abstract class BaseWorkflowHandler implements WorkflowHandler {
44
45 public String getIconPath(LiferayPortletRequest liferayPortletRequest) {
46 ThemeDisplay themeDisplay =
47 (ThemeDisplay)liferayPortletRequest.getAttribute(
48 WebKeys.THEME_DISPLAY);
49
50 return getIconPath(themeDisplay);
51 }
52
53 public String getTitle(long classPK) {
54 try {
55 AssetRenderer assetRenderer = getAssetRenderer(classPK);
56
57 if (assetRenderer != null) {
58 return assetRenderer.getTitle();
59 }
60 }
61 catch (Exception e) {
62 if (_log.isWarnEnabled()) {
63 _log.warn(e, e);
64 }
65 }
66
67 return null;
68 }
69
70 public String getType() {
71 return TYPE_UNKNOWN;
72 }
73
74 public PortletURL getURLEdit(
75 long classPK, LiferayPortletRequest liferayPortletRequest,
76 LiferayPortletResponse liferayPortletResponse) {
77
78 try {
79 AssetRenderer assetRenderer = getAssetRenderer(classPK);
80
81 if (assetRenderer != null) {
82 return assetRenderer.getURLEdit(
83 liferayPortletRequest, liferayPortletResponse);
84 }
85 }
86 catch (Exception e) {
87 if (_log.isWarnEnabled()) {
88 _log.warn(e, e);
89 }
90 }
91
92 return null;
93 }
94
95 public void startWorkflowInstance(
96 long companyId, long groupId, long userId, long classPK,
97 Object model, Map<String, Serializable> workflowContext)
98 throws PortalException, SystemException {
99
100 WorkflowInstanceLinkLocalServiceUtil.startWorkflowInstance(
101 companyId, groupId, userId, getClassName(), classPK,
102 workflowContext);
103 }
104
105 protected AssetRenderer getAssetRenderer(long classPK)
106 throws PortalException, SystemException {
107
108 AssetRendererFactory assetRendererFactory =
109 AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName(
110 getClassName());
111
112 if (assetRendererFactory != null) {
113 return assetRendererFactory.getAssetRenderer(classPK);
114 }
115 else {
116 return null;
117 }
118 }
119
120 protected String getIconPath(ThemeDisplay themeDisplay) {
121 return themeDisplay.getPathThemeImages() + "/common/page.png";
122 }
123
124 private static Log _log = LogFactoryUtil.getLog(BaseWorkflowHandler.class);
125
126 }