⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caseform.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/**
 * 
 */
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 + -