001
014
015 package com.liferay.portal.kernel.workflow;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
022 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
023 import com.liferay.portal.kernel.util.WebKeys;
024 import com.liferay.portal.service.WorkflowInstanceLinkLocalServiceUtil;
025 import com.liferay.portal.theme.ThemeDisplay;
026 import com.liferay.portlet.asset.AssetRendererFactoryRegistryUtil;
027 import com.liferay.portlet.asset.model.AssetRenderer;
028 import com.liferay.portlet.asset.model.AssetRendererFactory;
029
030 import java.io.Serializable;
031
032 import java.util.Map;
033
034 import javax.portlet.PortletURL;
035 import javax.portlet.RenderRequest;
036 import javax.portlet.RenderResponse;
037
038
045 public abstract class BaseWorkflowHandler implements WorkflowHandler {
046
047 public AssetRenderer getAssetRenderer(long classPK)
048 throws PortalException, SystemException {
049
050 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
051
052 if (assetRendererFactory != null) {
053 return assetRendererFactory.getAssetRenderer(
054 classPK, AssetRendererFactory.TYPE_LATEST);
055 }
056 else {
057 return null;
058 }
059 }
060
061 public AssetRendererFactory getAssetRendererFactory() {
062 return AssetRendererFactoryRegistryUtil.
063 getAssetRendererFactoryByClassName(getClassName());
064 }
065
066 public String getIconPath(LiferayPortletRequest liferayPortletRequest) {
067 ThemeDisplay themeDisplay =
068 (ThemeDisplay)liferayPortletRequest.getAttribute(
069 WebKeys.THEME_DISPLAY);
070
071 return getIconPath(themeDisplay);
072 }
073
074 public String getSummary(long classPK) {
075 try {
076 AssetRenderer assetRenderer = getAssetRenderer(classPK);
077
078 if (assetRenderer != null) {
079 return assetRenderer.getSummary();
080 }
081 }
082 catch (Exception e) {
083 if (_log.isWarnEnabled()) {
084 _log.warn(e, e);
085 }
086 }
087
088 return null;
089 }
090
091 public String getTitle(long classPK) {
092 try {
093 AssetRenderer assetRenderer = getAssetRenderer(classPK);
094
095 if (assetRenderer != null) {
096 return assetRenderer.getTitle();
097 }
098 }
099 catch (Exception e) {
100 if (_log.isWarnEnabled()) {
101 _log.warn(e, e);
102 }
103 }
104
105 return null;
106 }
107
108 public PortletURL getURLEdit(
109 long classPK, LiferayPortletRequest liferayPortletRequest,
110 LiferayPortletResponse liferayPortletResponse) {
111
112 try {
113 AssetRenderer assetRenderer = getAssetRenderer(classPK);
114
115 if (assetRenderer != null) {
116 return assetRenderer.getURLEdit(
117 liferayPortletRequest, liferayPortletResponse);
118 }
119 }
120 catch (Exception e) {
121 if (_log.isWarnEnabled()) {
122 _log.warn(e, e);
123 }
124 }
125
126 return null;
127 }
128
129 public String getURLViewInContext(
130 long classPK, LiferayPortletRequest liferayPortletRequest,
131 LiferayPortletResponse liferayPortletResponse,
132 String noSuchEntryRedirect) {
133
134 try {
135 AssetRenderer assetRenderer = getAssetRenderer(classPK);
136
137 if (assetRenderer != null) {
138 return assetRenderer.getURLViewInContext(
139 liferayPortletRequest, liferayPortletResponse,
140 noSuchEntryRedirect);
141 }
142 }
143 catch (Exception e) {
144 if (_log.isWarnEnabled()) {
145 _log.warn(e, e);
146 }
147 }
148
149 return null;
150 }
151
152 public String render(
153 long classPK, RenderRequest renderRequest,
154 RenderResponse renderResponse, String template) {
155
156 try {
157 AssetRenderer assetRenderer = getAssetRenderer(classPK);
158
159 if (assetRenderer != null) {
160 return assetRenderer.render(
161 renderRequest, renderResponse, template);
162 }
163 }
164 catch (Exception e) {
165 if (_log.isWarnEnabled()) {
166 _log.warn(e, e);
167 }
168 }
169
170 return null;
171 }
172
173 public void startWorkflowInstance(
174 long companyId, long groupId, long userId, long classPK,
175 Object model, Map<String, Serializable> workflowContext)
176 throws PortalException, SystemException {
177
178 WorkflowInstanceLinkLocalServiceUtil.startWorkflowInstance(
179 companyId, groupId, userId, getClassName(), classPK,
180 workflowContext);
181 }
182
183 protected String getIconPath(ThemeDisplay themeDisplay) {
184 return themeDisplay.getPathThemeImages() + "/common/page.png";
185 }
186
187 private static Log _log = LogFactoryUtil.getLog(BaseWorkflowHandler.class);
188
189 }