📄 activitystateimpl.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 + -