📄 assignvalueform.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.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Hashtable;
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.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.Assign;
import flow.graph.gui.graph.cell.bpel.Copy;
import flow.graph.gui.graph.cell.bpel.From;
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.bpel.To;
import flow.graph.gui.graph.cell.ui.table.AssignDetailTable;
import flow.graph.gui.graph.cell.ui.table.AssignDetailTableModel;
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 AssignValueForm {
private DefaultGraphCell cell;
private JGraph graph;
private JDialog dialog;
private JComboBox toMessageBox;
private JComboBox toPropertyBox;
private JCheckBox checkBox; //选中时为表达式
private JComboBox fromMessageBox;
private JComboBox fromPropertyBox;
private JTextField valueField;
private AssignDetailTable assignDetailTable;
private JButton assignAddButton;
private JButton assignModifyButton;
private JButton assignDeleteButton;
private JButton exitButton;
private int rowID = -1;
private Hashtable requestTable = new Hashtable();
private Hashtable responseTable = new Hashtable();
private static Message systemMessage;
static {
systemMessage = new Message();
systemMessage.addPart(new Part("message", Message.STRING_TYPE));
systemMessage.addPart(new Part("mobile", Message.STRING_TYPE));
systemMessage.addPart(new Part("port", Message.STRING_TYPE));
systemMessage.addPart(new Part("date", Message.STRING_TYPE));
systemMessage.addPart(new Part("serviceid", Message.STRING_TYPE));
}
public AssignValueForm(final DefaultGraphCell cell, JGraph graph){
this.cell = cell;
this.graph = graph;
dialog = new JDialog(FlowManager.getInstance(), "变量赋值窗口", true);
toMessageBox = new JComboBox();
toMessageBox.insertItemAt("", 0);
fromMessageBox = new JComboBox();
fromMessageBox.insertItemAt("", 0);
fromMessageBox.insertItemAt("SYSTEM", 1);
toPropertyBox = new JComboBox();
fromPropertyBox = new JComboBox();
checkBox = new JCheckBox();
valueField = new JTextField(100);
assignDetailTable = new AssignDetailTable(cell, graph);
responseTable.put("SYSTEM", systemMessage);
if(((GraphExtends)graph).getBPELMessages() != null){
Messages messages = ((GraphExtends)graph).getBPELMessages();
for(int i=0;i<messages.getMessages().size();i++){
Message message = (Message)messages.getMessages().get(i);
if(message.getType().equals(Message.RESPONSE_TYPE)){
//返回类型
responseTable.put(message.getName(), message);
fromMessageBox.insertItemAt(message.getName(), fromMessageBox.getItemCount());
}
else{
//请求类型
requestTable.put(message.getName(), message);
toMessageBox.insertItemAt(message.getName(), toMessageBox.getItemCount());
}
}
}
toMessageBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
JComboBox tempBox = (JComboBox)e.getSource();
String name = tempBox.getSelectedItem().toString();
//System.out.println("name="+name);
if(requestTable.get(name) != null){
Message message = (Message)requestTable.get(name);
toPropertyBox.removeAllItems();
toPropertyBox.insertItemAt("", 0);
for(int i=0;i<message.getParts().size();i++){
Part part = (Part)message.getParts().get(i);
toPropertyBox.insertItemAt(part.getName(), toPropertyBox.getItemCount());
}
}
}
});
fromMessageBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
JComboBox tempBox = (JComboBox)e.getSource();
String name = tempBox.getSelectedItem().toString();
if(responseTable.get(name) != null){
Message message = (Message)responseTable.get(name);
fromPropertyBox.removeAllItems();
fromPropertyBox.insertItemAt("", 0);
for(int i=0;i<message.getParts().size();i++){
Part part = (Part)message.getParts().get(i);
fromPropertyBox.insertItemAt(part.getName(), fromPropertyBox.getItemCount());
}
}
}
});
assignAddButton = new JButton("增 加");
assignAddButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("checkBox="+checkBox.isSelected());
System.out.println("selected="+toMessageBox.getSelectedIndex());
if(toMessageBox.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择目的类型!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
if(toPropertyBox.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择目的变量!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
if(checkBox.isSelected() == true){
//选中,取文本框的值
}
else{
//没选中,选下拉框的值
if(fromMessageBox.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择来源类型!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
if(fromPropertyBox.getSelectedIndex() <= 0){
JOptionPane.showConfirmDialog(FlowManager.getInstance(),
"请选择来源变量!",
"工作流操作提示",
JOptionPane.CLOSED_OPTION);
return;
}
}
if(FlowGraphConstants.getBpelAssign(cell.getAttributes()) == null){
FlowGraphConstants.setBpelAssign(cell.getAttributes(), new Assign());
}
//Messages messages = (Messages)graph.get
if(checkBox.isSelected() == true){
((AssignDetailTableModel)assignDetailTable.getModel()).addRow(toMessageBox.getSelectedItem().toString(), toPropertyBox.getSelectedItem().toString(), checkBox.isSelected(),
"", "", valueField.getText()==null?"":valueField.getText());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -