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

📄 assignvalueform.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.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 + -