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

📄 modelform.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * 
 */
package flow.graph.gui.graph.cell.ui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.ByteArrayOutputStream;

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.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.border.TitledBorder;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;

import org.jgraph.JGraph;
import org.jgraph.graph.DefaultGraphCell;

import com.jgoodies.looks.Options;
import com.jgoodies.looks.demo.Settings;
import com.jgoodies.looks.plastic.PlasticLookAndFeel;

import flow.graph.app.FlowManager;
import flow.graph.gui.graph.FlowGraphConstants;
import flow.graph.gui.graph.GraphExtends;
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.Message;
import flow.graph.gui.graph.cell.bpel.Messages;
import flow.graph.gui.graph.cell.ui.table.AssignDetailTable;
import flow.graph.gui.graph.cell.ui.table.FunctionTable;
import flow.graph.gui.graph.cell.ui.table.FunctionTableModel;
import flow.graph.gui.graph.cell.ui.table.FunctionTipsTable;
import flow.graph.gui.graph.cell.ui.table.FunctionTipsTableModel;
import flow.graph.gui.graph.cell.ui.table.MessageTable;
import flow.graph.gui.graph.cell.ui.table.MessageTableModel;
import flow.graph.gui.graph.encoder.XMLEncoder;
import flow.graph.gui.graph.lua.code.LuaFunctionParse;

/**
 * @author Administrator
 *
 */
public class ModelForm{
	//private DefaultGraphCell cell;
	//private JGraph graph;
	private JDialog dialog;
	
	//数据类型名称
	private JTextField functionName;
	private JTextField functionParameter;
	private JTextField functionDiscription;
	//数据类型增加按钮
	private JButton functionAddButton;
	//数据类型表格
	private FunctionTable functionTable;
	//数据类型删除按钮
	private JButton functionDeleteButton;
	//数据类型修改按钮
	private JButton functionModifyButton;
	private int functionRowID = -1;
	//数据类型增加数据项按钮
	private JButton functionDetailButton;
	
	//////////////////////////////////////////////////
	private JTextField functionTipsName;
	private JTextField functionTipsParameter;
	private JTextField functionTipsDiscription;
	//数据类型增加按钮
	private JButton functionTipsAddButton;
	//数据类型表格
	private FunctionTipsTable functionTipsTable;
	//数据类型删除按钮
	private JButton functionTipsDeleteButton;
	//数据类型修改按钮
	private JButton functionTipsModifyButton;
	private int functionTipsRowID = -1;
	
	private JButton closeButton;
	
	private DefaultGraphCell cell;
	
	public ModelForm( final DefaultGraphCell cell, final JGraph graph){
		this.cell = cell;
		//this.graph = graph;
		dialog = new JDialog(FlowManager.getInstance(), "函数数据编辑窗口", true);
		
		//数据类型定义
		functionName = new JTextField(10);
		functionParameter = new JTextField(20);
		functionDiscription = new JTextField(100);
		functionAddButton = new JButton("增加");
		functionAddButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				if(FlowGraphConstants.getBpelFunctions(cell.getAttributes()) == null){
					FlowGraphConstants.setBpelFunctions(cell.getAttributes(), new Functions());
				}
				// TODO Auto-generated method stub
				if(functionName.getText().length() <= 0){
					//提示不能为空
					JOptionPane.showConfirmDialog(FlowManager.getInstance(),
							"函数名称不能为空!",
							"工作流操作提示",
							JOptionPane.CLOSED_OPTION);
					functionName.setFocusable(true);
					return;
				}
				for(int i=0;i<((FunctionTableModel)functionTable.getModel()).getRowCount();i++){
					if(((FunctionTableModel)functionTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(functionName.getText())){
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"函数 "+functionName.getText()+" 已经存在!",
								"工作流操作提示",
								JOptionPane.CLOSED_OPTION);
						return;
					}
				}
				((FunctionTableModel)functionTable.getModel()).addRow(functionName.getText(), functionParameter.getText(), functionDiscription.getText());
				Function function = new Function(functionName.getText(), functionParameter.getText(), "", functionDiscription.getText());
				((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).addFunction(function);
				//FlowGraphConstants.setBpelFunctions(cell.getAttributes(), FlowGraphConstants.getBpelFunctions(cell.getAttributes()));
				//System.out.println(((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).toString());
				functionName.setText("");
				functionParameter.setText("");
				functionDiscription.setText("");
			}
			
		});
		functionModifyButton = new JButton("修改");
		functionModifyButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(functionRowID != -1){
					if(functionName.getText().length() <= 0){
						//提示不能为空
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"函数名称不能为空!",
								"工作流操作提示",
								JOptionPane.CLOSED_OPTION);
						functionName.setFocusable(true);
						return;
					}
					
					for(int i=0;i<((FunctionTableModel)functionTable.getModel()).getRowCount();i++){
						if(i == functionRowID)
							continue;
						if(((FunctionTableModel)functionTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(functionName.getText())){
							JOptionPane.showConfirmDialog(FlowManager.getInstance(),
									"函数 "+functionName.getText()+" 已经存在!",
									"工作流操作提示",
									JOptionPane.CLOSED_OPTION);
							return;
						}
					}
					
					if(FlowGraphConstants.getBpelFunctions(cell.getAttributes()) != null){
						for(int i=0;i<((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().size();i++){
							Function function = ((Function)((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().get(i));
							if(function.getName().equals(((FunctionTableModel)functionTable.getModel()).getValueAt(functionRowID, 0))){
								((Function)((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().get(i)).setName(functionName.getText());
								((Function)((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().get(i)).setParameter(functionParameter.getText());
								((Function)((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().get(i)).setDiscription(functionDiscription.getText());
							}
						}
					}
					((FunctionTableModel)functionTable.getModel()).setValueAt(functionName.getText(), functionRowID, 0);
					((FunctionTableModel)functionTable.getModel()).setValueAt(functionParameter.getText(), functionRowID, 1);
					((FunctionTableModel)functionTable.getModel()).setValueAt(functionDiscription.getText(), functionRowID, 2);
					functionName.setText("");
					functionParameter.setText("");
					functionDiscription.setText("")	;
				}
				functionRowID = -1;
			}
			
		});
		
		functionTable = new FunctionTable(cell);
		functionTable.setDragEnabled(false);
		functionTable.addMouseListener(new MouseListener(){

			public void mouseClicked(MouseEvent e) {
				// TODO Auto-generated method stub
				int rowID = functionTable.rowAtPoint(e.getPoint());
				functionRowID = rowID;
				//System.out.println("rowID="+rowID);
				int columnID = functionTable.columnAtPoint(e.getPoint());
				functionName.setText(((FunctionTableModel)functionTable.getModel()).getValueAt(rowID, 0).toString());
				functionParameter.setText(((FunctionTableModel)functionTable.getModel()).getValueAt(rowID, 1).toString());
				functionDiscription.setText(((FunctionTableModel)functionTable.getModel()).getValueAt(rowID, 2).toString());
				if(e.getClickCount() == 2){
					//双击
					if(functionRowID != -1){
						new FunctionBodyForm(cell, graph, ((FunctionTableModel)functionTable.getModel()).getValueAt(functionRowID, 0).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
				
			}
			
		});
		functionDeleteButton = new JButton("删  除");
		functionDeleteButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(functionRowID != -1){
					if(FlowGraphConstants.getBpelFunctions(cell.getAttributes()) != null){
						for(int i=0;i<((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().size();i++){
							Function function = ((Function)((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().get(i));
							if(function.getName().equals(((FunctionTableModel)functionTable.getModel()).getValueAt(functionRowID, 0))){
								((Functions)FlowGraphConstants.getBpelFunctions(cell.getAttributes())).getFunctions().remove(i);
							}
						}
					}
					((FunctionTableModel)functionTable.getModel()).removeRow(functionRowID);
					functionName.setText("");
					functionParameter.setText("");
					functionDiscription.setText("");
				}
				functionRowID = -1;
			}
			
		});
		functionDetailButton = new JButton("定义函数体");
		functionDetailButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(functionRowID != -1){
					new FunctionBodyForm(cell, graph, ((FunctionTableModel)functionTable.getModel()).getValueAt(functionRowID, 0).toString());
				}
			}
			
		});
		
		////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////
		//数据类型定义
		functionTipsName = new JTextField(20);
		functionTipsParameter = new JTextField(20);
		functionTipsDiscription = new JTextField(100);
		functionTipsAddButton = new JButton("增加");
		functionTipsAddButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				if(FlowGraphConstants.getBpelFunctions(cell.getAttributes()) == null){
					FlowGraphConstants.setBpelFunctions(cell.getAttributes(), new Functions());
				}
				// TODO Auto-generated method stub
				if(functionTipsName.getText().length() <= 0){
					//提示不能为空
					JOptionPane.showConfirmDialog(FlowManager.getInstance(),
							"函数名称不能为空!",
							"工作流操作提示",
							JOptionPane.CLOSED_OPTION);
					functionTipsName.setFocusable(true);
					return;
				}
				for(int i=0;i<((FunctionTipsTableModel)functionTipsTable.getModel()).getRowCount();i++){
					if(((FunctionTipsTableModel)functionTipsTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(functionTipsName.getText())){
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"函数 "+functionTipsName.getText()+" 已经存在!",
								"工作流操作提示",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -