📄 inclusivegatewaystateimpl.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 InclusiveGatewayStateImpl extends StateImpl //implements InclusiveGatewayState {{ public InclusiveGatewayStateImpl() { setFields(new Vector()); } public InclusiveGatewayStateImpl(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 = 3; panelConfig.tabStrings.add("属性面板"); panelConfig.tabStrings.add("门"); panelConfig.tabStrings.add("输出顺序流"); // Properties 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].setNumStaticRows(3); tableModel[0].insertRow( 0, new Object[] { "GatewayType", getGatewayType()}); // tableModel[0].insertRow( 1, new Object[] { // "Gate:", // null}); // tableModel[0].insertRow( 2, new Object[] { // "OutgoingSequenceFlow", // null}); // tableModel[0].insertRow(3,new Object[]{"Assign",null}); tableModel[0].setNumStaticRows(2); TableColumn editColumn = table[0].getColumnModel().getColumn(1); JTextField textField = new JTextField(); editColumn.setCellEditor(new DefaultCellEditor(textField)); // tab 门 tableModel[1].setRowCount(0); tableModel[1].setColumnIdentifiers(new Object[]{"Gate", "GateID"}); tableModel[1].setDefaultCellEntries(new Object[]{"输入Gate号", FieldAccess.READ_ONLY}); tableModel[1].setAddDeletingAllowed(true); tableModel[1].setColumnEditable(new boolean[]{true,true}); tableModel[1].setMaxNumDynamicRows(50000); tableModel[1].setNumStaticRows(0); 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); JComboBox comboBox = new JComboBox(); comboBox.addItem(FieldAccess.NOT_ACCESSIBLE.toString()); comboBox.addItem(FieldAccess.READ_ONLY.toString()); comboBox.addItem(FieldAccess.WRITE_ONLY.toString()); comboBox.addItem(FieldAccess.WRITE_ONLY_REQUIRED.toString()); comboBox.addItem(FieldAccess.READ_WRITE.toString()); comboBox.addItem(FieldAccess.READ_WRITE_REQUIRED.toString()); editColumn.setCellEditor(new DefaultCellEditor(comboBox)); // 输出顺序流 tab tableModel[2].setRowCount(0); tableModel[2].setColumnIdentifiers(new Object[]{"输出顺序流", "表达式"}); tableModel[2].setDefaultCellEntries(new Object[]{"OutgoingSequenceFlow", "输出顺序流ID"}); tableModel[2].setAddDeletingAllowed(true); tableModel[2].setColumnEditable(new boolean[]{true,true}); tableModel[2].setMaxNumDynamicRows(50000); tableModel[2].setNumStaticRows(0); editColumn = table[2].getColumnModel().getColumn(1); Collection actions = getActions(); int sizeActions = 0; if ( actions != null ) { sizeActions = actions.size(); } 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 + "<switch 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 + "</activity-state>\n\n"; return xml; } public String getActorRoleName() { return actorRoleName; } public void setActorRoleName( String actorRoleName ) { this.actorRoleName = actorRoleName; } public String getDisplayedNodeType() { return nodeType; } public String getGatewayType() { return gatewayType; } private String actorRoleName = new String("Edit"); public static final String nodeType = new String("inclusiveGateway"); private String gatewayType=new String("OR");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -