/modules/apps/forms-and-workflow/portal-workflow/portal-workflow-instance-web/src/main/java/com/liferay/portal/workflow/instance/web/internal/display/context/WorkflowInstanceEditDisplayContext.java
Java | 402 lines | 290 code | 96 blank | 16 comment | 28 complexity | 1e8b033cd51570248374a9d14332efec MD5 | raw file
Possible License(s): LGPL-2.0
- /**
- * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- */
- package com.liferay.portal.workflow.instance.web.internal.display.context;
- import com.liferay.asset.kernel.model.AssetEntry;
- import com.liferay.asset.kernel.model.AssetRenderer;
- import com.liferay.asset.kernel.model.AssetRendererFactory;
- import com.liferay.portal.kernel.dao.orm.QueryUtil;
- import com.liferay.portal.kernel.exception.PortalException;
- import com.liferay.portal.kernel.language.LanguageUtil;
- import com.liferay.portal.kernel.model.Role;
- import com.liferay.portal.kernel.model.User;
- import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
- import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
- import com.liferay.portal.kernel.security.permission.ResourceActionsUtil;
- import com.liferay.portal.kernel.service.RoleLocalServiceUtil;
- import com.liferay.portal.kernel.service.UserLocalServiceUtil;
- import com.liferay.portal.kernel.util.GetterUtil;
- import com.liferay.portal.kernel.util.HtmlUtil;
- import com.liferay.portal.kernel.util.OrderByComparator;
- import com.liferay.portal.kernel.util.PortalUtil;
- import com.liferay.portal.kernel.util.StringPool;
- import com.liferay.portal.kernel.util.WebKeys;
- import com.liferay.portal.kernel.workflow.WorkflowConstants;
- import com.liferay.portal.kernel.workflow.WorkflowException;
- import com.liferay.portal.kernel.workflow.WorkflowHandler;
- import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil;
- import com.liferay.portal.kernel.workflow.WorkflowInstance;
- import com.liferay.portal.kernel.workflow.WorkflowLog;
- import com.liferay.portal.kernel.workflow.WorkflowLogManagerUtil;
- import com.liferay.portal.kernel.workflow.WorkflowTask;
- import com.liferay.portal.kernel.workflow.WorkflowTaskManagerUtil;
- import com.liferay.portal.kernel.workflow.comparator.WorkflowComparatorFactoryUtil;
- import java.io.Serializable;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @author Leonardo Barros
- */
- public class WorkflowInstanceEditDisplayContext
- extends BaseWorkflowInstanceDisplayContext {
- public WorkflowInstanceEditDisplayContext(
- LiferayPortletRequest liferayPortletRequest,
- LiferayPortletResponse liferayPortletResponse) {
- super(liferayPortletRequest, liferayPortletResponse);
- }
- public AssetEntry getAssetEntry() throws PortalException {
- AssetRenderer<?> assetRenderer = getAssetRenderer();
- if (assetRenderer == null) {
- return null;
- }
- AssetRendererFactory<?> assetRendererFactory =
- getAssetRendererFactory();
- return assetRendererFactory.getAssetEntry(
- assetRendererFactory.getClassName(), assetRenderer.getClassPK());
- }
- public String getAssetEntryVersionId() {
- long classPK = getWorkflowContextEntryClassPK();
- return String.valueOf(classPK);
- }
- public String getAssetName() {
- return HtmlUtil.escape(getWorkflowDefinitionName());
- }
- public AssetRenderer<?> getAssetRenderer() throws PortalException {
- WorkflowHandler<?> workflowHandler = getWorkflowHandler();
- return workflowHandler.getAssetRenderer(
- getWorkflowContextEntryClassPK());
- }
- public AssetRendererFactory<?> getAssetRendererFactory() {
- WorkflowHandler<?> workflowHandler = getWorkflowHandler();
- return workflowHandler.getAssetRendererFactory();
- }
- public String getAssignedTheTaskMessageKey(WorkflowLog workflowLog)
- throws PortalException {
- User user = getUser(workflowLog.getUserId());
- if (user.isMale()) {
- return "x-assigned-the-task-to-himself";
- }
- else {
- return "x-assigned-the-task-to-herself";
- }
- }
- public Object getAssignedTheTaskToMessageArguments(WorkflowLog workflowLog)
- throws PortalException {
- String userName = PortalUtil.getUserName(
- workflowLog.getAuditUserId(), StringPool.BLANK);
- String actorName = getActorName(workflowLog);
- return new Object[] {
- HtmlUtil.escape(userName), HtmlUtil.escape(actorName)
- };
- }
- public String getHeaderTitle() {
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(),
- getWorkflowDefinitionName());
- }
- public String getIconCssClass() {
- WorkflowHandler<?> workflowHandler = getWorkflowHandler();
- return workflowHandler.getIconCssClass();
- }
- public String getPanelTitle() {
- String modelResource = ResourceActionsUtil.getModelResource(
- workflowInstanceRequestHelper.getLocale(),
- getWorkflowContextEntryClassName());
- return LanguageUtil.format(
- workflowInstanceRequestHelper.getRequest(), "preview-of-x",
- modelResource, false);
- }
- public Object getPreviousAssigneeMessageArguments(WorkflowLog workflowLog) {
- return HtmlUtil.escape(
- PortalUtil.getUserName(
- workflowLog.getPreviousUserId(), StringPool.BLANK));
- }
- public String getTaskCompleted(WorkflowTask workflowTask) {
- if (workflowTask.isCompleted()) {
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(), "yes");
- }
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(), "no");
- }
- public Object getTaskCompletionMessageArguments(WorkflowLog workflowLog)
- throws PortalException {
- String actorName = getActorName(workflowLog);
- return new Object[] {
- HtmlUtil.escape(actorName), HtmlUtil.escape(workflowLog.getState())
- };
- }
- public String getTaskContentTitleMessage() {
- WorkflowHandler<?> workflowHandler = getWorkflowHandler();
- long classPK = getWorkflowContextEntryClassPK();
- return HtmlUtil.escape(
- workflowHandler.getTitle(
- classPK, workflowInstanceRequestHelper.getLocale()));
- }
- public String getTaskDueDate(WorkflowTask workflowTask) {
- if (workflowTask.getDueDate() == null) {
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(), "never");
- }
- else {
- return dateFormatDateTime.format(workflowTask.getDueDate());
- }
- }
- public Object getTaskInitiallyAssignedMessageArguments(
- WorkflowLog workflowLog)
- throws PortalException {
- return HtmlUtil.escape(getActorName(workflowLog));
- }
- public String getTaskName(WorkflowTask workflowTask) {
- return HtmlUtil.escape(workflowTask.getName());
- }
- public Object getTaskUpdateMessageArguments(WorkflowLog workflowLog)
- throws PortalException {
- return HtmlUtil.escape(getActorName(workflowLog));
- }
- public Object getTransitionMessageArguments(WorkflowLog workflowLog)
- throws PortalException {
- String actorName = getActorName(workflowLog);
- return new Object[] {
- HtmlUtil.escape(actorName),
- HtmlUtil.escape(workflowLog.getPreviousState()),
- HtmlUtil.escape(workflowLog.getState())
- };
- }
- public String getUserFullName(WorkflowLog workflowLog)
- throws PortalException {
- User user = getUser(workflowLog.getUserId());
- return HtmlUtil.escape(user.getFullName());
- }
- public String getWorkflowInstanceEndDate() {
- WorkflowInstance workflowInstance = getWorkflowInstance();
- if (workflowInstance.getEndDate() == null) {
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(), "never");
- }
- else {
- return dateFormatDateTime.format(workflowInstance.getEndDate());
- }
- }
- public String getWorkflowInstanceState() {
- WorkflowInstance workflowInstance = getWorkflowInstance();
- return LanguageUtil.get(
- workflowInstanceRequestHelper.getRequest(),
- workflowInstance.getState());
- }
- public String getWorkflowLogComment(WorkflowLog workflowLog) {
- return HtmlUtil.escape(workflowLog.getComment());
- }
- public String getWorkflowLogCreateDate(WorkflowLog workflowLog) {
- return dateFormatDateTime.format(workflowLog.getCreateDate());
- }
- public List<WorkflowLog> getWorkflowLogs() throws WorkflowException {
- if (_workflowLogs == null) {
- OrderByComparator<WorkflowLog> orderByComparator =
- WorkflowComparatorFactoryUtil.getLogCreateDateComparator(false);
- _workflowLogs =
- WorkflowLogManagerUtil.getWorkflowLogsByWorkflowInstance(
- workflowInstanceRequestHelper.getCompanyId(),
- getWorkflowInstanceId(), _logTypes, QueryUtil.ALL_POS,
- QueryUtil.ALL_POS, orderByComparator);
- }
- return _workflowLogs;
- }
- public List<WorkflowTask> getWorkflowTasks() throws PortalException {
- if (workflowTasks == null) {
- workflowTasks =
- WorkflowTaskManagerUtil.getWorkflowTasksByWorkflowInstance(
- workflowInstanceRequestHelper.getCompanyId(), null,
- getWorkflowInstanceId(), null, QueryUtil.ALL_POS,
- QueryUtil.ALL_POS, null);
- }
- return workflowTasks;
- }
- public boolean isAuditUser(WorkflowLog workflowLog) {
- if (workflowLog.getUserId() == 0) {
- return false;
- }
- if (workflowLog.getAuditUserId() == workflowLog.getUserId()) {
- return true;
- }
- return false;
- }
- public boolean isWorkflowTasksEmpty() throws PortalException {
- List<WorkflowTask> workflowTasks = getWorkflowTasks();
- return workflowTasks.isEmpty();
- }
- protected String getActorName(WorkflowLog workflowLog)
- throws PortalException {
- if (workflowLog.getRoleId() != 0) {
- Role role = getRole(workflowLog.getRoleId());
- return role.getDescriptiveName();
- }
- else if (workflowLog.getUserId() != 0) {
- User user = getUser(workflowLog.getUserId());
- return user.getFullName();
- }
- return StringPool.BLANK;
- }
- protected Role getRole(long roleId) throws PortalException {
- Role role = _roles.get(roleId);
- if (role == null) {
- role = RoleLocalServiceUtil.getRole(roleId);
- _roles.put(roleId, role);
- }
- return role;
- }
- protected User getUser(long userId) throws PortalException {
- User user = _users.get(userId);
- if (user == null) {
- user = UserLocalServiceUtil.getUser(userId);
- _users.put(userId, user);
- }
- return user;
- }
- protected Map<String, Serializable> getWorkflowContext() {
- WorkflowInstance workflowInstance = getWorkflowInstance();
- return workflowInstance.getWorkflowContext();
- }
- protected String getWorkflowContextEntryClassName() {
- Map<String, Serializable> workflowContext = getWorkflowContext();
- return (String)workflowContext.get(
- WorkflowConstants.CONTEXT_ENTRY_CLASS_NAME);
- }
- protected long getWorkflowContextEntryClassPK() {
- Map<String, Serializable> workflowContext = getWorkflowContext();
- return GetterUtil.getLong(
- (String)workflowContext.get(
- WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
- }
- protected String getWorkflowDefinitionName() {
- WorkflowInstance workflowInstance = getWorkflowInstance();
- return workflowInstance.getWorkflowDefinitionName();
- }
- protected WorkflowHandler<?> getWorkflowHandler() {
- String className = getWorkflowContextEntryClassName();
- return WorkflowHandlerRegistryUtil.getWorkflowHandler(className);
- }
- protected WorkflowInstance getWorkflowInstance() {
- return (WorkflowInstance)liferayPortletRequest.getAttribute(
- WebKeys.WORKFLOW_INSTANCE);
- }
- protected long getWorkflowInstanceId() {
- WorkflowInstance workflowInstance = getWorkflowInstance();
- return workflowInstance.getWorkflowInstanceId();
- }
- protected List<WorkflowTask> workflowTasks;
- private static final List<Integer> _logTypes = Arrays.asList(
- WorkflowLog.TASK_ASSIGN, WorkflowLog.TASK_COMPLETION,
- WorkflowLog.TASK_UPDATE, WorkflowLog.TRANSITION);
- private final Map<Long, Role> _roles = new HashMap<>();
- private final Map<Long, User> _users = new HashMap<>();
- private List<WorkflowLog> _workflowLogs;
- }