📄 decisionimpl.java
字号:
package org.jgpd.io.jbpm.definition.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.*;
import org.jgpd.UI.PropPanelConfig;
import org.jgpd.UI.tableModels.JGpdTableModel;
import org.jgpd.UI.utils.FileWizardEditor;
import org.jgpd.io.jbpm.definition.Decision;
import org.jgpd.io.utils.FilePackage;
import org.jgraph.GPGraphpad;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
public class DecisionImpl extends NodeImpl implements Decision {
public static final String nodeType = new String("switch");
protected FilePackage handler = new FilePackage(null ,null);
protected Collection parameters = new Vector(); // parameter elements 0-n
public DecisionImpl()
{
handler.setDescription(new String("Edit"));
}
public DecisionImpl(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("filepackage"))
{
handler = new FilePackage(child);
}
else if (child.getNodeName().toLowerCase().equals("parameter"))
{
Node next_child = child.getFirstChild();
try {
nodeValue = next_child.getNodeValue();
} catch (Exception e) {
// FIXME - do something
}
if ( nodeValue != null )
{
Parameter para = new Parameter(child, nodeValue);
parameters.add(para);
}
else
{
// FIXME, no value to parameter - error
}
}
}
}
public PropPanelConfig propPanelModel(JTable[] table,
JGpdTableModel[] tableModel,
GPGraphpad gp)
{
PropPanelConfig panelConfig = new PropPanelConfig();
panelConfig.numTabsUsed = 1;
panelConfig.tabStrings.add("属性面板");
// panelConfig.tabStrings.add("Properties");
// panelConfig.tabStrings.add("Handler");
// panelConfig.tabStrings.add("Parameters");
// 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].insertRow( 0, new Object[] { "XORType", "Data" });
tableModel[0].setNumStaticRows(1);
TableColumn editColumn0 = table[0].getColumnModel().getColumn(1);
JComboBox xortype=new JComboBox();
xortype.addItem("Data");
xortype.addItem("Event");
editColumn0.setCellEditor(new DefaultCellEditor(xortype));
// Fields tab
tableModel[1].setRowCount(0);
tableModel[1].setColumnIdentifiers(new Object[]{"Name",
"Handler Class"});
TableColumn handlerColumn = table[1].getColumnModel().getColumn(1);
FileWizardEditor fileWizard = new FileWizardEditor(gp.getFrame());
handlerColumn.setCellEditor(fileWizard);
// No entries allowed, set any default entry string
tableModel[1].setDefaultCellEntries(new Object[]{"", ""});
tableModel[1].setAddDeletingAllowed(false);
tableModel[1].setColumnEditable(new boolean[]{true,true});
tableModel[1].setMaxNumDynamicRows(0);
tableModel[1].insertRow( 0, new Object[] {
handler.getDescription(),
handler } );
tableModel[1].setNumStaticRows(1);
// Parameters tab
tableModel[2].setRowCount(0);
tableModel[2].setColumnIdentifiers(new Object[]{"Name",
"Value"});
// No entries allowed, set any default entry string
tableModel[2].setDefaultCellEntries(new Object[]{"Enter name here", "Enter value here"});
tableModel[2].setAddDeletingAllowed(true);
tableModel[2].setColumnEditable(new boolean[]{true,true});
tableModel[2].setMaxNumDynamicRows(50000);
tableModel[2].setNumStaticRows(0);
Collection params = getParameters();
int numParams = 0; // set to zero in case fields collection isn't created
Iterator iter = params.iterator();
while (iter.hasNext())
{
Parameter param = (Parameter) iter.next();
tableModel[2].addRow( new Object[] {
param.getName(),
param.getValue()});
}
return panelConfig;
}
public void applyProperties(DefaultTableModel[] tableModel)
{
Vector propsVector = tableModel[0].getDataVector();
setName(((Vector)propsVector.get(0)).get(1).toString());
Vector handlerVector = tableModel[1].getDataVector();
handler = (FilePackage)(((Vector)handlerVector.get(0)).get(1));
handler.setDescription( ( (String)(((Vector)handlerVector.get(0)).get(0)) ) );
// Parameters
Vector paramsVector = tableModel[2].getDataVector();
if ( paramsVector.isEmpty() )
{
setParameters(new Vector());
}
else
{
Vector newParams = new Vector();
for (int i = 0; i < paramsVector.size(); i++)
{
String name = ((Vector)paramsVector.get(i)).get(0).toString();
String value = ((Vector)paramsVector.get(i)).get(1).toString();
Parameter param = new Parameter(name ,value);
newParams.add( param );
}
setParameters(newParams);
}
}
public String getDisplayedNodeType()
{
return nodeType;
}
public String writeXML(String indent)
{
String xml = indent + "<" + getNodeType() +
" name=\"" +
this.name +
"\" ";
if ( handler != null )
{
xml += "handler=\"";
xml += handler.toString() + "\" ";
}
xml += ">\n";
Collection params = getParameters();
Iterator iter = params.iterator();
while (iter.hasNext())
{
Parameter param = (Parameter) iter.next();
xml += param.writeXML( indent+ " " );
}
xml += super.writeXML(indent + " ");
xml += indent + "</" + getNodeType() + ">\n\n";
return xml;
}
/**
* @return
*/
public Collection getParameters()
{
return parameters;
}
/**
* @param parameters
*/
public void setParameters(Collection parameters)
{
this.parameters = parameters;
}
public String getNodeType()
{
return DecisionImpl.nodeType;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -