📄 modelform.java
字号:
/**
*
*/
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 + -