⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskformprepareaction.java

📁 一个java工作流引擎
💻 JAVA
字号:
package org.jbpm.web.struts.action;

import java.util.*;
import javax.servlet.http.*;
import org.apache.commons.logging.*;
import org.apache.struts.action.*;
import org.jbpm.*;
import org.jbpm.model.definition.Definition;
import org.jbpm.model.execution.*;
import org.jbpm.web.formgen.*;
import org.jbpm.web.struts.form.*;

public class TaskFormPrepareAction extends org.apache.struts.action.Action {

  private static Map formFileNamesCache = new HashMap();

  public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {

    TaskForm taskForm = (TaskForm) actionForm;

    Long definitionId = null;
    Long tokenId = null;
    String stateName = null;
    Map variables = null;

    ExecutionService executionService = JbpmServiceLocator.getInstance().getExecutionService();

    String tokenIdText = request.getParameter( "tokenId" );
    if ( tokenIdText == null ) {
      // this is a start process form
      taskForm.setCommand( TaskForm.COMMAND_START_PROCESS_INSTANCE );
      String definitionIdText = request.getParameter( "definitionId" );
      definitionId = new Long( definitionIdText );
      Definition definition = executionService.getDefinition( definitionId, null );
      stateName = definition.getStartState().getName();
      variables = new HashMap();
      
    } else {
      // this is a task form for an existing process instance
      taskForm.setCommand( TaskForm.COMMAND_END_OF_STATE );
      tokenId = new Long( tokenIdText );
      Token token = executionService.getToken( tokenId, null );
      Definition definition = token.getProcessInstance().getDefinition();

      definitionId = definition.getId();
      stateName = token.getState().getName();
      variables = executionService.getVariables( tokenId );
    }
    
    Form form = Form.getForm( definitionId, stateName );
    FormGenerator formGenerator = form.getGenerator();
    Map parameters = formGenerator.prepareParameters( variables );
    
    taskForm.setDefinitionId( definitionId );
    taskForm.setTokenId( tokenId );
    taskForm.setStateName( stateName );
    taskForm.setParameters( parameters );
    taskForm.setFormGenerator( formGenerator );

    return mapping.findForward( "taskform" );
  }

  private static Log log = LogFactory.getLog(TaskFormPrepareAction.class);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -