1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.wiki.workflow;
16  
17  import com.liferay.portal.kernel.exception.PortalException;
18  import com.liferay.portal.kernel.exception.SystemException;
19  import com.liferay.portal.kernel.util.GetterUtil;
20  import com.liferay.portal.kernel.workflow.BaseWorkflowHandler;
21  import com.liferay.portal.kernel.workflow.WorkflowConstants;
22  import com.liferay.portal.service.ServiceContext;
23  import com.liferay.portal.theme.ThemeDisplay;
24  import com.liferay.portlet.asset.model.AssetRenderer;
25  import com.liferay.portlet.wiki.asset.WikiPageAssetRenderer;
26  import com.liferay.portlet.wiki.model.WikiPage;
27  import com.liferay.portlet.wiki.service.WikiPageLocalServiceUtil;
28  
29  import java.io.Serializable;
30  
31  import java.util.Map;
32  
33  /**
34   * <a href="WikiPageWorkflowHandler.java.html"><b><i>View Source</i></b></a>
35   *
36   * @author Jorge Ferrer
37   */
38  public class WikiPageWorkflowHandler extends BaseWorkflowHandler {
39  
40      public static final String CLASS_NAME = WikiPage.class.getName();
41  
42      public String getClassName() {
43          return CLASS_NAME;
44      }
45  
46      public String getType() {
47          return TYPE_CONTENT;
48      }
49  
50      public WikiPage updateStatus(
51              int status, Map<String, Serializable> workflowContext)
52          throws PortalException, SystemException {
53  
54          long userId = GetterUtil.getLong(
55              (String)workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
56          long classPK = GetterUtil.getLong(
57              (String)workflowContext.get(
58                  WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
59  
60          ServiceContext serviceContext = (ServiceContext)workflowContext.get(
61              "serviceContext");
62  
63          return WikiPageLocalServiceUtil.updateStatus(
64              userId, classPK, status, serviceContext);
65      }
66  
67      protected AssetRenderer getAssetRenderer(long classPK)
68          throws PortalException, SystemException {
69  
70          WikiPage page = WikiPageLocalServiceUtil.getPage(classPK);
71  
72          return new WikiPageAssetRenderer(page);
73      }
74  
75      protected String getIconPath(ThemeDisplay themeDisplay) {
76          return themeDisplay.getPathThemeImages() + "/common/pages.png";
77      }
78  
79  }