📄 testframe.java
字号:
/**
*
*/
package flow.graph.gui.graph.lua.gui;
import java.awt.BorderLayout;
import java.awt.Color;
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 javax.swing.Box;
import javax.swing.JButton;
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.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.gui.table.InputParameterTable;
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.Parameter;
import flow.graph.gui.graph.lua.xml.Parameters;
import flow.graph.gui.graph.lua.xml.TemplateConstants;
import flow.graph.gui.syntax.JHightLightLineTextPane;
import flow.graph.gui.tools.SimpleButton;
import flow.graph.test.JSelectButton;
/**
* @author Administrator
*
*/
public class TestFrame {
private DefaultGraphCell cell;
private JGraph graph;
private JDialog dialog;
////////////////////////////////////
//input control
private JTextField inputName;
private JComboBox inputType;
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;
public TestFrame(final DefaultGraphCell cell, JGraph graph){
this.cell = cell;
this.graph = graph;
if(FlowGraphConstants.getInputTemplate(cell.getAttributes()) == null){
FlowGraphConstants.setInputTemplate(cell.getAttributes(), new Parameters());
}
if(FlowGraphConstants.getOutputTemplate(cell.getAttributes()) == null){
FlowGraphConstants.setOutputTemplate(cell.getAttributes(), new Parameters());
}
if(FlowGraphConstants.getActionTemplate(cell.getAttributes()) == null){
FlowGraphConstants.setActionTemplate(cell.getAttributes(), new ActionTemplate());
}
dialog = new JDialog(FlowManager.getInstance(), "函数调用数据编辑窗口", true);
inputName = new JTextField(20);
inputType = new JComboBox(Parameter.ParameterType);
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(10, 120));
//inputTitledPanel.setBackground(Color.BLUE);
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(inputValue);
Box inputAddBox2 = Box.createHorizontalBox();
inputAddBox2.add(new JLabel("说明:"));
inputAddBox2.add(inputDiscription);
inputAddBox2.add(Box.createHorizontalStrut(5));
inputAddBox2.add(inputAddButton);
inputAddBox2.add(Box.createHorizontalStrut(5));
inputAddBox2.add(inputModifyButton);
inputAddBox2.add(Box.createHorizontalStrut(5));
inputAddBox2.add(inputDeleteButton);
//JPanel inputDeletePanel = new JPanel(new FlowLayout());
//inputDeletePanel.add(inputDeleteButton);
Box inputLayoutBox = Box.createVerticalBox();
inputLayoutBox.add(inputAddBox1);
//inputLayoutBox.add(Box.createVerticalStrut(1));
inputLayoutBox.add(inputAddBox2);
//inputLayoutBox.add(Box.createVerticalStrut(1));
inputLayoutBox.add(new JScrollPane(inputTable));
//inputLayoutBox.add(Box.createVerticalStrut(1));
//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, 120));
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(1));
outputLayoutBox.add(outputAddBox2);
//outputLayoutBox.add(Box.createVerticalStrut(1));
outputLayoutBox.add(new JScrollPane(outputTable));
//outputLayoutBox.add(Box.createVerticalStrut(1));
//outputLayoutBox.add(outputDeletePanel);
outputTitledPanel.add(outputLayoutBox, BorderLayout.CENTER);
////////////////////////////////////////////////////////////
actionArea = new JHightLightLineTextPane();
JPanel actionPanel = new JPanel(new BorderLayout());
actionPanel.setPreferredSize(new Dimension(10, 150));
actionPanel.setBorder(new TitledBorder("代码"));
//actionPanel.add(new JScrollPane(actionArea), BorderLayout.CENTER);
actionPanel.add(actionArea, BorderLayout.WEST);
actionPanel.add(actionArea.scrollPane, BorderLayout.CENTER);
JButton exitButton = new JButton("关 闭");
exitButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
saveData();
}
});
JPanel exitPanel = new JPanel(new FlowLayout());
exitPanel.add(exitButton);
///////////////////////////////////////////////////////////
//初始化actionArea
if(FlowGraphConstants.getActionTemplate(cell.getAttributes()) != null){
ActionTemplate action = (ActionTemplate)FlowGraphConstants.getActionTemplate(cell.getAttributes());
//actionArea.setText(action.getAction().length()<=0?TemplateConstants.ACTION_TEMPLATE:action.getAction());
actionArea.setText(action.getAction());
}
////////////////////////////////////////////////////////////
inputAddButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(inputName.getText().length() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量名称不能为空!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
inputName.requestFocus();
return;
}
if(inputType.getSelectedIndex() == 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择数据类型!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
inputType.requestFocus();
return;
}
//////////////////////////
//判断变量名是否已经存在
/*
if(FlowGraphConstants.getInputTemplate(cell.getAttributes()) != null){
if(((Parameters)FlowGraphConstants.getInputTemplate(cell.getAttributes())).exitsParameter(inputName.getText())){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量"+inputName.getText()+"已经存在!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
inputName.requestFocus();
return;
}
}*/
for(int i=0;i<((ParameterTableModel)inputTable.getModel()).getRowCount();i++){
if(((ParameterTableModel)inputTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(inputName.getText())){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量"+inputName.getText()+" 已经存在!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
}
((ParameterTableModel)inputTable.getModel()).addRow(inputName.getText(), inputType.getSelectedItem().toString(), inputValue.getText(), inputDiscription.getText());
Parameter p = new Parameter(inputName.getText(), inputType.getSelectedItem().toString(), inputValue.getText(), inputDiscription.getText());
((Parameters)FlowGraphConstants.getInputTemplate(cell.getAttributes())).addParameter(p);
inputName.setText("");
inputType.setSelectedIndex(0);
inputValue.setText("");
inputDiscription.setText("");
}});
inputTable.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
inputRowID = inputTable.rowAtPoint(e.getPoint());
int columnID = inputTable.columnAtPoint(e.getPoint());
inputName.setText(((ParameterTableModel)inputTable.getModel()).getValueAt(inputRowID, 0).toString());
inputType.setSelectedItem(((ParameterTableModel)inputTable.getModel()).getValueAt(inputRowID, 1).toString());
inputValue.setText(((ParameterTableModel)inputTable.getModel()).getValueAt(inputRowID, 2).toString());
inputDiscription.setText(((ParameterTableModel)inputTable.getModel()).getValueAt(inputRowID, 3).toString());
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -