Package com.jboss.dvd.seam

Source Code of com.jboss.dvd.seam.ProcessDefinitionSwitcher

package com.jboss.dvd.seam;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Synchronized;
import org.jboss.seam.bpm.Jbpm;
import org.jbpm.JbpmContext;

/**
* Switches JBPM process definitions dynamically
*/
@Name("processDefinitionSwitcher")
@Scope(ScopeType.APPLICATION)
@Synchronized
public class ProcessDefinitionSwitcher
{
    static final String[] ORDER_DEFS = {
          "ordermanagement1.jpdl.xml",
          "ordermanagement2.jpdl.xml",
          "ordermanagement3.jpdl.xml"
       };

    @In(value="org.jboss.seam.bpm.jbpm")
    private Jbpm jbpm;
   
    @In
    private JbpmContext jbpmContext;
   
    public List<SelectItem> getProcessDefinitions()
    {
       List<SelectItem> result = new ArrayList<SelectItem>();
       for (String def: ORDER_DEFS)
       {
          result.add( new SelectItem(def, def.substring(0, def.length()-9)) );
       }
       return result;
    }
   
    private String currentProcessDefinition;
   
    public String getCurrentProcessDefinition()
    {
       return currentProcessDefinition;
    }
   
    public void setCurrentProcessDefinition(String def)
    {
       currentProcessDefinition = def;
    }

    public String switchProcess()
    {
       jbpmContext.deployProcessDefinition( jbpm.getProcessDefinitionFromResource(currentProcessDefinition) );
       return null;
    }
   
}
TOP

Related Classes of com.jboss.dvd.seam.ProcessDefinitionSwitcher

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.