📄 assigndetailform.java
字号:
/**
*
*/
package flow.graph.gui.graph.cell.ui;
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.MouseEvent;
import java.awt.event.MouseListener;
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.cell.bpel.Message;
import flow.graph.gui.graph.cell.bpel.Messages;
import flow.graph.gui.graph.cell.bpel.Part;
import flow.graph.gui.graph.cell.ui.table.AssignDetailTable;
import flow.graph.gui.graph.cell.ui.table.MessageDetailTable;
import flow.graph.gui.graph.cell.ui.table.MessageDetailTableModel;
import flow.graph.gui.graph.cell.ui.table.MessageTableModel;
/**
* @author Administrator
*
*/
public class AssignDetailForm {
private DefaultGraphCell cell;
private JGraph graph;
private JDialog dialog;
private String name;
private JTextField variableName;
private JComboBox variableType;
private JButton addButton;
private JButton modifyButton;
private JButton deleteButton;
private JButton closeButton;
private MessageDetailTable messageDetailTable;
private int rowID = -1;
public AssignDetailForm(final DefaultGraphCell cell, JGraph graph, final String name){
this.cell = cell;
this.graph = graph;
this.name = name;
dialog = new JDialog(FlowManager.getInstance(), "数据变量定义窗口", true);
variableName = new JTextField(20);
variableType = new JComboBox(Message.DataType);
messageDetailTable = new MessageDetailTable(cell, name);
addButton = new JButton("增 加");
addButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(variableName.getText().length() <= 0){
//提示不能为空
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量名不能为空!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
//variableName.setFocusable(true);
return;
}
if(variableType.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择数据类型!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
//Messages messages = (Messages)graph.get
for(int i=0;i<((MessageDetailTableModel)messageDetailTable.getModel()).getRowCount();i++){
if(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(variableName.getText())){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量名 "+variableName.getText()+" 已经存在!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
}
((MessageDetailTableModel)messageDetailTable.getModel()).addRow(variableName.getText(), variableType.getSelectedItem().toString());
Part part = new Part(variableName.getText(), variableType.getSelectedItem().toString());
if(FlowGraphConstants.getBpelMessages(cell.getAttributes()) != null){
Messages messages = (Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes());
for(int i=0;i<messages.getMessages().size();i++){
Message message = (Message)messages.getMessages().get(i);
if(message.getName().equals(name)){
((Message)((Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes())).getMessages().get(i)).addPart(part);
}
}
}
variableName.setText("");
variableType.setSelectedIndex(0);
}
});
modifyButton = new JButton("修 改");
modifyButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(rowID != -1){
if(variableName.getText().length() <= 0){
//提示不能为空
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量名不能为空!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
//variableName.setFocusable(true);
return;
}
if(variableType.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择数据类型!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
//Messages messages = (Messages)graph.get
for(int i=0;i<((MessageDetailTableModel)messageDetailTable.getModel()).getRowCount();i++){
if(i == rowID)
continue;
if(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(i, 0).toString().equalsIgnoreCase(variableName.getText())){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"变量名 "+variableName.getText()+" 已经存在!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
}
if(FlowGraphConstants.getBpelMessages(cell.getAttributes()) != null){
Messages messages = (Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes());
for(int i=0;i<messages.getMessages().size();i++){
Message message = (Message)messages.getMessages().get(i);
if(message.getName().equals(name)){
for(int j=0;j<message.getParts().size();j++){
Part part = (Part)message.getParts().get(j);
if(part.getName().equals(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(rowID, 0))){
((Part)((Message)((Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes())).getMessages().get(i)).getParts().get(j)).setName(variableName.getText());
((Part)((Message)((Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes())).getMessages().get(i)).getParts().get(j)).setType(variableType.getSelectedItem().toString());
}
}
}
}
}
((MessageDetailTableModel)messageDetailTable.getModel()).setValueAt(variableName.getText(), rowID, 0);
((MessageDetailTableModel)messageDetailTable.getModel()).setValueAt(variableType.getSelectedItem().toString(), rowID, 1);
variableName.setText("");
variableType.setSelectedIndex(0);
}
rowID = -1;
}
});
deleteButton = new JButton("删 除");
deleteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(rowID != -1){
if(FlowGraphConstants.getBpelMessages(cell.getAttributes()) != null){
Messages messages = (Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes());
for(int i=0;i<messages.getMessages().size();i++){
Message message = (Message)messages.getMessages().get(i);
if(message.getName().equals(name)){
for(int j=0;j<message.getParts().size();j++){
Part part = (Part)message.getParts().get(j);
if(part.getName().equals(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(rowID, 0))){
((Message)((Messages)FlowGraphConstants.getBpelMessages(cell.getAttributes())).getMessages().get(i)).getParts().remove(j);
}
}
}
}
}
((MessageDetailTableModel)messageDetailTable.getModel()).removeRow(rowID);
variableName.setText("");
variableType.setSelectedIndex(0);
}
rowID = -1;
}
});
closeButton = new JButton("关 闭");
messageDetailTable.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
rowID = messageDetailTable.rowAtPoint(e.getPoint());
//System.out.println("rowID="+rowID);
int columnID = messageDetailTable.columnAtPoint(e.getPoint());
variableName.setText(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(rowID, 0).toString());
variableType.setSelectedItem(((MessageDetailTableModel)messageDetailTable.getModel()).getValueAt(rowID, 1).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
}
});
Box addBox = Box.createHorizontalBox();
addBox.add(new JLabel("变量名:"));
addBox.add(variableName);
addBox.add(Box.createHorizontalStrut(10));
addBox.add(new JLabel("数据类型"));
addBox.add(variableType);
addBox.add(Box.createHorizontalStrut(10));
addBox.add(addButton);
addBox.add(modifyButton);
JPanel controlPanel = new JPanel(new FlowLayout());
controlPanel.add(deleteButton);
controlPanel.add(closeButton);
closeButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dialog.dispose();
}
});
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(new TitledBorder(""));
dialog.getContentPane().setLayout(new BorderLayout());
Box controlBox = Box.createVerticalBox();
controlBox.add(Box.createVerticalStrut(10));
controlBox.add(addBox);
controlBox.add(Box.createVerticalStrut(10));
controlBox.add(new JScrollPane(messageDetailTable));
panel.add(controlBox, BorderLayout.CENTER);
dialog.getContentPane().add(panel, BorderLayout.CENTER);
dialog.getContentPane().add(controlPanel, BorderLayout.SOUTH);
dialog.setSize(400, 300);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
dialog.setLocation((screenSize.width-400)/2, (screenSize.height-300)/2);
dialog.setResizable(true);
dialog.show();
}
public static void main(String[] args){
AssignForm.configureUI();
AssignDetailForm form = new AssignDetailForm(new DefaultGraphCell("哈哈"), null, "");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -