📄 caseform.java
字号:
/**
*
*/
package flow.graph.gui.graph.lua.gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.TitledBorder;
import org.jgraph.JGraph;
import org.jgraph.graph.DefaultEdge;
import org.jgraph.graph.DefaultGraphCell;
import flow.graph.app.FlowManager;
import flow.graph.gui.graph.FlowGraphConstants;
import flow.graph.gui.graph.GraphExtends;
import flow.graph.gui.graph.cell.BPELFlag;
import flow.graph.gui.graph.cell.FlowGraphCell;
import flow.graph.gui.graph.cell.bpel.Function;
import flow.graph.gui.graph.cell.bpel.FunctionTips;
import flow.graph.gui.graph.cell.bpel.Functions;
import flow.graph.gui.graph.cell.bpel.Invoke;
import flow.graph.gui.graph.cell.bpel.Message;
import flow.graph.gui.graph.cell.bpel.Messages;
import flow.graph.gui.graph.cell.bpel.While;
import flow.graph.gui.graph.cell.ui.AssignForm;
import flow.graph.gui.graph.lua.GraphTemplateCell;
import flow.graph.gui.graph.lua.code.LuaCaseParse;
import flow.graph.gui.graph.lua.code.LuaWhileParse;
import flow.graph.gui.graph.lua.gui.function.FunctionTree;
import flow.graph.gui.graph.lua.gui.table.InputParameterTable;
import flow.graph.gui.graph.lua.gui.table.InputParameterTableModel;
import flow.graph.gui.graph.lua.gui.table.OutputParameterTable;
import flow.graph.gui.graph.lua.gui.table.ParameterTableModel;
import flow.graph.gui.graph.lua.xml.ActionTemplate;
import flow.graph.gui.graph.lua.xml.CaseTemplate;
import flow.graph.gui.graph.lua.xml.InputParameter;
import flow.graph.gui.graph.lua.xml.InputParameters;
import flow.graph.gui.graph.lua.xml.Parameter;
import flow.graph.gui.graph.lua.xml.Parameters;
import flow.graph.gui.graph.lua.xml.TemplateConstants;
import flow.graph.gui.syntax.JHightLightLineTextPane;
/**
* @author Administrator
*
*/
public class CaseForm {
private DefaultGraphCell cell;
private JGraph graph;
private DefaultEdge edge;
private JDialog dialog;
////////////////////////////////////
//input control
private JTextField inputName;
private JComboBox inputType;
private JCheckBox inputFlag;
private JComboBox inputSource;
private JTextField inputValue;
private JTextField inputDiscription;
private JButton inputAddButton, inputModifyButton, inputDeleteButton;
private InputParameterTable inputTable;
private int inputRowID = -1;
////////////////////////////////////
//output control
private JTextField outputName;
private JComboBox outputType;
private JTextField outputValue;
private JTextField outputDiscription;
private JButton outputAddButton, outputModifyButton, outputDeleteButton;
private OutputParameterTable outputTable;
private int outputRowID = -1;
private JHightLightLineTextPane actionArea;
private JTextField condictionField;
public CaseForm(final DefaultGraphCell cell, final DefaultEdge edge, JGraph graph){
this.cell = cell;
this.graph = graph;
this.edge = edge;
if(FlowGraphConstants.getInputTemplate(cell.getAttributes()) == null){
FlowGraphConstants.setInputTemplate(cell.getAttributes(), new InputParameters());
}
if(FlowGraphConstants.getOutputTemplate(cell.getAttributes()) == null){
FlowGraphConstants.setOutputTemplate(cell.getAttributes(), new Parameters());
}
if(FlowGraphConstants.getCaseTemplate(edge.getAttributes()) == null){
FlowGraphConstants.setCaseTemplate(edge.getAttributes(), new CaseTemplate());
}
if(FlowGraphConstants.getActionTemplate(edge.getAttributes()) == null){
FlowGraphConstants.setActionTemplate(edge.getAttributes(), new ActionTemplate());
}
dialog = new JDialog(FlowManager.getInstance(), "参数配置", true);
inputName = new JTextField(20);
inputType = new JComboBox(Parameter.ParameterType);
inputFlag = new JCheckBox();
Vector v = new Vector();
v.add("");
Hashtable ht = new Hashtable();
Vector tv = GraphTemplateCell.getSourceParameter(cell);
if(tv != null){
for(int i=0;i<tv.size();i++){
String tx = tv.get(i).toString();
ht.put(tx,tx);
}
}
if(ht.size()>0){
Set set = ht.keySet();
Iterator iter = set.iterator();
while(iter.hasNext()){
v.add(iter.next().toString());
}
}
inputSource = new JComboBox(v.toArray());
inputSource.setPreferredSize(new Dimension(40, 10));
inputSource.setEditable(true);
inputValue = new JTextField(20);
inputDiscription = new JTextField(30);
inputAddButton = new JButton("增 加");
inputModifyButton = new JButton("修 改");
inputDeleteButton = new JButton("删 除");
inputTable = new InputParameterTable(cell);
JPanel inputTitledPanel = new JPanel(new BorderLayout());
inputTitledPanel.setBorder(new TitledBorder("输入参数"));
inputTitledPanel.setPreferredSize(new Dimension(130, 80));
Box inputAddBox1 = Box.createHorizontalBox();
inputAddBox1.add(new JLabel("名称:"));
inputAddBox1.add(inputName);
inputAddBox1.add(Box.createHorizontalStrut(5));
inputAddBox1.add(new JLabel("类型:"));
inputAddBox1.add(inputType);
inputAddBox1.add(Box.createHorizontalStrut(5));
inputAddBox1.add(new JLabel("标识:"));
inputAddBox1.add(inputFlag);
inputAddBox1.add(Box.createHorizontalStrut(5));
inputAddBox1.add(new JLabel("来源:"));
inputAddBox1.add(inputSource);
Box inputAddBox2 = Box.createHorizontalBox();
inputAddBox2.add(new JLabel(" 值:"));
inputAddBox2.add(inputValue);
Box inputAddBox3 = Box.createHorizontalBox();
inputAddBox3.add(new JLabel("说明:"));
inputAddBox3.add(inputDiscription);
inputAddBox3.add(Box.createHorizontalStrut(5));
inputAddBox3.add(inputAddButton);
inputAddBox3.add(Box.createHorizontalStrut(5));
inputAddBox3.add(inputModifyButton);
inputAddBox3.add(Box.createHorizontalStrut(5));
inputAddBox3.add(inputDeleteButton);
//JPanel inputDeletePanel = new JPanel(new FlowLayout());
//inputDeletePanel.add(inputDeleteButton);
Box inputLayoutBox = Box.createVerticalBox();
inputLayoutBox.add(inputAddBox1);
//inputLayoutBox.add(Box.createVerticalStrut(5));
inputLayoutBox.add(inputAddBox2);
inputLayoutBox.add(inputAddBox3);
//inputLayoutBox.add(Box.createVerticalStrut(5));
inputLayoutBox.add(new JScrollPane(inputTable));
//inputLayoutBox.add(Box.createVerticalStrut(5));
//inputLayoutBox.add(inputDeletePanel);
inputTitledPanel.add(inputLayoutBox, BorderLayout.CENTER);
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
outputName = new JTextField(20);
outputType = new JComboBox(Parameter.ParameterType);
outputValue = new JTextField(20);
outputDiscription = new JTextField(30);
outputAddButton = new JButton("增 加");
outputModifyButton = new JButton("修 改");
outputDeleteButton = new JButton("删 除");
outputTable = new OutputParameterTable(cell);
JPanel outputTitledPanel = new JPanel(new BorderLayout());
outputTitledPanel.setBorder(new TitledBorder("输出参数"));
outputTitledPanel.setPreferredSize(new Dimension(10, 80));
Box outputAddBox1 = Box.createHorizontalBox();
outputAddBox1.add(new JLabel("名称:"));
outputAddBox1.add(outputName);
outputAddBox1.add(Box.createHorizontalStrut(5));
outputAddBox1.add(new JLabel("类型:"));
outputAddBox1.add(outputType);
outputAddBox1.add(Box.createHorizontalStrut(5));
outputAddBox1.add(new JLabel("值:"));
outputAddBox1.add(outputValue);
Box outputAddBox2 = Box.createHorizontalBox();
outputAddBox2.add(new JLabel("说明:"));
outputAddBox2.add(outputDiscription);
outputAddBox2.add(Box.createHorizontalStrut(5));
outputAddBox2.add(outputAddButton);
outputAddBox2.add(Box.createHorizontalStrut(5));
outputAddBox2.add(outputModifyButton);
outputAddBox2.add(Box.createHorizontalStrut(5));
outputAddBox2.add(outputDeleteButton);
//JPanel outputDeletePanel = new JPanel(new FlowLayout());
//outputDeletePanel.add(outputDeleteButton);
Box outputLayoutBox = Box.createVerticalBox();
outputLayoutBox.add(outputAddBox1);
//outputLayoutBox.add(Box.createVerticalStrut(5));
outputLayoutBox.add(outputAddBox2);
//outputLayoutBox.add(Box.createVerticalStrut(5));
outputLayoutBox.add(new JScrollPane(outputTable));
//outputLayoutBox.add(Box.createVerticalStrut(5));
//outputLayoutBox.add(outputDeletePanel);
outputTitledPanel.add(outputLayoutBox, BorderLayout.CENTER);
////////////////////////////////////////////////////////////
condictionField = new JTextField();
JPanel condictionTitledPanel = new JPanel(new BorderLayout());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -