Package org.jbpm.webapp.bean

Source Code of org.jbpm.webapp.bean.MonitoringBean

/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This 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 software 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.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jbpm.webapp.bean;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;


/**
* Monitoring Bean Implementation.
*
* @author David Loiseau
*/

public class MonitoringBean {

  long processInstanceId;
  String message;
  String variableName;
  String variableValue;
  String variableNameOperator;
  String variableValueOperator;
  ArrayList processInstances;
 
  public String showProcessDefinitions() {
    return "processDefinitions";
  }
 
  public List getProcessDefinitions() {
   
    ArrayList processDefinitionsList = new ArrayList();

    JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
    List processDefinitions = jbpmContext.getGraphSession().findAllProcessDefinitions();

    if (processDefinitions.isEmpty() == false) {
      ListIterator listProcessDefinitions = processDefinitions.listIterator();
      while (listProcessDefinitions.hasNext() ) {
        ProcessDefinition processDefinition = (ProcessDefinition)listProcessDefinitions.next();

        int instancesCount = 0;
        try {
          Connection connection = jbpmContext.getConnection();
          Statement statement = connection.createStatement();
         
          String request = "SELECT COUNT(*) AS instancesCount "
            + "FROM jbpm_processinstance "
            + "WHERE processdefinition_='"
            + processDefinition.getId() + "'";
          ResultSet resultSet = statement.executeQuery(request);
          resultSet.next();
          instancesCount = resultSet.getInt("instancesCount");
        }
        catch (Exception e) {}

        processDefinitionsList.add(
            new ProcessDefinitionBean(
              processDefinition.getId(),
              processDefinition.getName(),
              processDefinition.getVersion(),
              instancesCount
              ));         
      }
    }

    return(processDefinitionsList);
  }
 
  public String inspectInstance() {
    try {
      ProcessInstanceBean processInstanceBean = new ProcessInstanceBean(this.processInstanceId);
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("processInstanceBean", processInstanceBean);
      this.message = "";
      return "inspectInstance";
    }
    catch (Exception exception) {
      this.message = "Error for process instance " + this.processInstanceId;
      return "";
    }
  }

  public String showSearchInstances() {
    return("showSearchInstances");
  }
 
  public String searchInstances() {

    long count = 0;
   
        JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();

    try {
      Connection connection = jbpmContext.getConnection();
      Statement statement = connection.createStatement();
      statement.setMaxRows(100);
     
      String request = "SELECT DISTINCT processinstance_, name_, stringvalue_  FROM jbpm_variableinstance "
            + "WHERE name_ "
            + this.variableNameOperator + " '"
            + variableName + "' AND stringvalue_ "
            + this.variableValueOperator + " '" + variableValue + "'";

      ResultSet resultSet = statement.executeQuery(request);
     
      processInstances = new ArrayList();
     
      while (resultSet.next()) {
        processInstances.add(new ProcessInstanceBean(
            resultSet.getLong("processinstance_"),
            resultSet.getString("name_"),
            resultSet.getString("stringvalue_")));
        count++;
      }
      statement.close();
    }
    catch (Exception e) {
      this.message = "Search error " + e.getMessage();
    }
   
    if (count == 1) {
      ProcessInstanceBean processInstanceBean = (ProcessInstanceBean)processInstances.iterator().next();
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("processInstanceBean", processInstanceBean);
      return("inspectInstance")
    }
    return "";
  }
 
  public List getOperatorsList (){

        ArrayList operatorsList =  new ArrayList();

    SelectItem item = new SelectItem("=", "is equal to");
    operatorsList.add(item);
    item = new SelectItem("like", "is like");
    operatorsList.add(item);     
        return operatorsList;
   
  }
 
  public long getProcessInstanceId() {
    return processInstanceId;
  }

  public void setProcessInstanceId(long processInstanceId) {
    this.processInstanceId = processInstanceId;
  }

  public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
    this.message = message;
  }
 
  public boolean isShowProcessInstances() {
    if (processInstances == null) return false;
    if (processInstances.size() == 0) return false;
    return true;
  }

  public ArrayList getProcessInstances() {
    return processInstances;
  }

  public String getVariableName() {
    return variableName;
  }

  public void setVariableName(String variableName) {
    this.variableName = variableName;
  }

  public String getVariableValue() {
    return variableValue;
  }

  public void setVariableValue(String variableValue) {
    this.variableValue = variableValue;
  }

  public String getVariableNameOperator() {
    return variableNameOperator;
  }

  public void setVariableNameOperator(String variableNameOperator) {
    this.variableNameOperator = variableNameOperator;
  }

  public String getVariableValueOperator() {
    return variableValueOperator;
  }

  public void setVariableValueOperator(String variableValueOperator) {
    this.variableValueOperator = variableValueOperator;
  }


}
TOP

Related Classes of org.jbpm.webapp.bean.MonitoringBean

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.