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

📄 activitystateimpl.java

📁 用JGraph编的软件
💻 JAVA
字号:
package org.jgpd.io.jbpm.definition.impl;

import java.util.*;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

import org.jgpd.UI.PropPanelConfig;
import org.jgpd.UI.tableModels.JGpdTableModel;
import org.jgpd.io.jbpm.definition.ActivityState;
import org.jgpd.io.jbpm.definition.FieldAccess;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

public class ActivityStateImpl
    extends StateImpl
    implements ActivityState {

  public ActivityStateImpl() {
    setFields(new Vector());
  }

  public ActivityStateImpl(Node node) {
    String nodeValue = null;
    Vector newFields = new Vector();

    // Get attributes
    NamedNodeMap attrMap = node.getAttributes();
    Node nameNode = attrMap.getNamedItem("name");
    String name = nameNode.getNodeValue();
    setName(name);

    // Get sub-elements
    for (int i = 0; i < node.getChildNodes().getLength(); i++) {
      Node child = node.getChildNodes().item(i);
      String nextChildString = child.getNodeName().toLowerCase();
      if (child.getNodeName().toLowerCase().equals("description")) {
        Node next_child = child.getFirstChild();
        try {
          nodeValue = next_child.getNodeValue();
        }
        catch (Exception e) {
          // FIXME - do something
        }
        if (nodeValue != null) {
          setDescription(nodeValue);
        }
      }
      else if (child.getNodeName().toLowerCase().equals("role")) {
        Node next_child = child.getFirstChild();
        try {
          nodeValue = next_child.getNodeValue();
        }
        catch (Exception e) {
          // FIXME - do something
        }
        if (nodeValue != null) {
          setActorRoleName(nodeValue);
        }
      }
      else if (child.getNodeName().toLowerCase().equals("field")) {
        FieldImpl field = new FieldImpl(child);
        newFields.add(field);
      }
    }

    setFields(newFields);
  }

  public PropPanelConfig propPanelModel(JTable[] table,
                                        JGpdTableModel[] tableModel) {
    PropPanelConfig panelConfig = new PropPanelConfig();

    panelConfig.numTabsUsed = 5;

    panelConfig.tabStrings.add("一般属性");
    panelConfig.tabStrings.add("类型");
    panelConfig.tabStrings.add("Property");
    panelConfig.tabStrings.add("AssignTime");
    panelConfig.tabStrings.add("CompletionCondition");


    // 一般属性 tab
    tableModel[0].setRowCount(0);
    tableModel[0].setColumnIdentifiers(new Object[] {"属性",
                                       "值"});
    // No entries allowed, set any default entry string
    tableModel[0].setDefaultCellEntries(new Object[] {"", ""});
    tableModel[0].setAddDeletingAllowed(false);
    tableModel[0].setColumnEditable(new boolean[] {false, true});
    tableModel[0].setMaxNumDynamicRows(0);

    tableModel[0].insertRow(0, new Object[] {
                            "ID",
                            ""});

    tableModel[0].insertRow(1, new Object[] {
                            "Name",
                            ""});
    tableModel[0].insertRow(2, new Object[] {
                            "Pool",
                            ""});
    tableModel[0].insertRow(3, new Object[] {
                            "Documentation",
                            ""});


    tableModel[0].setNumStaticRows(4);

    TableColumn editColumn0 = table[0].getColumnModel().getColumn(1);
      JTextField textField = new JTextField();

    editColumn0.setCellEditor(new DefaultCellEditor(textField));

    // 类型 tab
    tableModel[1].setRowCount(0);
   tableModel[1].setColumnIdentifiers(new Object[] {"任务类型",
                                       "值"});

    tableModel[1].setAddDeletingAllowed(false);
    tableModel[1].setColumnEditable(new boolean[] {false, true});
    tableModel[1].setMaxNumDynamicRows(50000);
    tableModel[1].setNumStaticRows(1);
    JComboBox comboBox1 = new JComboBox();
    comboBox1.addItem("Service");
    comboBox1.addItem("Receive");
    comboBox1.addItem("Send");
    comboBox1.addItem("User");
    comboBox1.addItem("Script");
    comboBox1.addItem("Abstract");
    comboBox1.addItem("Manual");
    comboBox1.addItem("None");


    tableModel[1].insertRow(0,new Object[]{"TaskType",""});
   // tableModel[1].insertRow(1,new Object[]{"PassThrough",""});
  editColumn0 = table[1].getColumnModel().getColumn(1);
     editColumn0.setCellEditor(new DefaultCellEditor(comboBox1));



   /* Collection fields = getFields();
    Iterator iter = fields.iterator();
    while (iter.hasNext()) {
      FieldImpl field = (FieldImpl) iter.next();
      tableModel[1].addRow(new Object[] {
                           field.getName(),
                           field.getAccess().toString()});
    }

    editColumn = table[1].getColumnModel().getColumn(1);



   */

    // Actions tab
    tableModel[2].setRowCount(0);
    tableModel[2].setColumnIdentifiers(new Object[] {"名称",
                                       "类型"});
    tableModel[2].setDefaultCellEntries(new Object[] {"name",
                                        "输入类型"});
    tableModel[2].setAddDeletingAllowed(true);
    tableModel[2].setColumnEditable(new boolean[] {false, true});
    tableModel[2].setMaxNumDynamicRows(50000);
    tableModel[2].setNumStaticRows(0);

    editColumn0 = table[2].getColumnModel().getColumn(1);

    Collection actions = getActions();
    int sizeActions = 0;
    if (actions != null) {
      sizeActions = actions.size();
    }
    //AssignTime tabl
    tableModel[3].setColumnIdentifiers(new Object[] {"属性",
                                       "值"});
    tableModel[3].setAddDeletingAllowed(false);
   tableModel[3].setColumnEditable(new boolean[] {false, true});
   tableModel[3].setMaxNumDynamicRows(50000);
   tableModel[3].setNumStaticRows(1);
   JComboBox comboBox3 = new JComboBox();
   comboBox3.addItem("Start");
   comboBox3.addItem("End");
   tableModel[3].insertRow(0,new Object[]{"AssignTime",""});
     editColumn0 = table[3].getColumnModel().getColumn(1);
    editColumn0.setCellEditor(new DefaultCellEditor(comboBox3));
   //CompletionCondition tab
   tableModel[4].setRowCount(0);
    tableModel[4].setColumnIdentifiers(new Object[] {"名称",
                                       "类型"});
    tableModel[4].setDefaultCellEntries(new Object[] {"name",
                                        "输入类型"});
    tableModel[4].setAddDeletingAllowed(true);
    tableModel[4].setColumnEditable(new boolean[] {false, true});
    tableModel[4].setMaxNumDynamicRows(50000);
    tableModel[4].setNumStaticRows(0);


    return panelConfig;
  }

  public void applyProperties(DefaultTableModel[] tableModel) {
    Vector propsVector = tableModel[0].getDataVector();
    setName( ( (Vector) propsVector.get(0)).get(1).toString());
    setDescription( ( (Vector) propsVector.get(1)).get(1).toString());
    setActorRoleName( ( (Vector) propsVector.get(2)).get(1).toString());

    Vector fieldsVector = tableModel[1].getDataVector();
    if (fieldsVector.isEmpty()) {
      clearFields();
    }
    else {
      Vector newFields = new Vector();
      for (int i = 0; i < fieldsVector.size(); i++) {
        FieldImpl field = new FieldImpl();
        field.setName( ( (Vector) fieldsVector.get(i)).get(0).toString());
        String access = ( (Vector) fieldsVector.get(i)).get(1).toString();
        field.setAccess(FieldAccess.fromText(access));

        //FIXME need to add initial field value?
        newFields.add(field);
      }
      setFields(newFields);
    }
  }

  public String writeXML(String indent) {
    String xml = indent + "<receive>\n";
  //  String xml = indent + "<receive name=\"" + this.name + "\">\n";

  //  String local_indent = indent + "  ";

  //  xml += local_indent + "<description>" + this.description +
   //     "</description>\n";

    // FIXME TODO db assignment handler here

 //   xml += local_indent + "<role>" + actorRoleName + "</role>\n";

 //   Collection fields = getFields();
 //   Iterator iter = fields.iterator();
 //   while (iter.hasNext()) {
 //     FieldImpl field = (FieldImpl) iter.next();
  //    xml += field.writeXML(local_indent + "  ");
  //  }

 //   xml += super.writeXML(local_indent);

    xml += indent + "</receive>\n\n";

    return xml;
  }

  public String getActorRoleName() {
    return actorRoleName;
  }

  public void setActorRoleName(String actorRoleName) {
    this.actorRoleName = actorRoleName;
  }

  public String getDisplayedNodeType() {
    return nodeType;
  }

  private String actorRoleName = new String("Edit");
  public static final String nodeType = new String("activity-state");
}

⌨️ 快捷键说明

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