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

📄 templateform.java

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

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.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.geom.Point2D;
import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.border.TitledBorder;

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

import flow.graph.app.FlowManager;
import flow.graph.gui.graph.FlowGraphConstants;
import flow.graph.gui.graph.cell.ui.AssignForm;
import flow.graph.gui.graph.encoder.XMLEncoder;
import flow.graph.gui.graph.lua.xml.TemplateConstants;
import flow.graph.gui.tools.JButtonGroup;
import flow.graph.gui.tools.JGroupPanel;
import flow.graph.gui.tools.SelectButton;

/**
 * @author Administrator
 *
 */
public class TemplateForm {
	private JDialog dialog;
	private JGraph graph;
	
	private JTextField templateName;
	private JButton addTemplateButton;
	
	private JTextField fileName;
	private JTreeComboBox treeBox;
	private JButton saveTemplateButton;
	private JButton modifyTemplateButton;
	private JButton deleteTemplateButton;
	private JButton exitButton;

	public TemplateForm(JGraph graph){
		this.graph = graph;
		JFileTree fileTree = new JFileTree(new JFileTree.TemplateFilter(), System.getProperty("user.dir")+"/"+TemplateFactory.TEMPLATE_PATH);
		treeBox = new JTreeComboBox(fileTree);
		templateName = new JTextField(5);
		addTemplateButton = new JButton("创建模板库");
		addTemplateButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(templateName.getText().length() <= 0){
					JOptionPane.showConfirmDialog(FlowManager.getInstance(),
							"模板库名称不能为空!",
							"模板库操作提示",
							JOptionPane.CLOSED_OPTION);
					return;
				}
				String path = System.getProperty("user.dir")+"/"+TemplateFactory.TEMPLATE_PATH;
				File file = new File(path);
				String[] files = file.list();
				for(int i=0;i<files.length;i++){
					if(files[i].equalsIgnoreCase(templateName.getText())){
						//提示存在相同名称的文件存在
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"已经存在名称为"+templateName.getText()+"的模板库",
								"模板库操作提示",
								JOptionPane.CLOSED_OPTION);
						return;
					}
				}
				File addFile = new File(path+"/"+templateName.getText());
				addFile.mkdir();
				JFileTree fileTree1 = new JFileTree(new JFileTree.TemplateFilter(), System.getProperty("user.dir")+"/"+TemplateFactory.TEMPLATE_PATH);
				treeBox.setTree(fileTree1);
				((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).addGroup(templateName.getText());
				((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).expandGroup(templateName.getText());
				//FlowManager.getInstance().getGroupPanel().getGroupPanel().addGroup(templateName.getText());
				templateName.setText("");
				//((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).getGroup(templateName.getText()).setMemberGap(50, 10);
			}			
		});
		
		
		fileName = new JTextField(5);

		treeBox.setPreferredSize(new Dimension(150, 10));
		treeBox.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//System.out.println("Selected:"+((JFileTree)treeBox.getTree()).getSelectSubFile());
			}
			
		});
		
		saveTemplateButton = new JButton("保存模板");
		saveTemplateButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(((JFileTree)treeBox.getTree()).getSelectSubFile() == null){
					JOptionPane.showConfirmDialog(FlowManager.getInstance(),
							"请选择目标模板!",
							"模板库操作提示",
							JOptionPane.CLOSED_OPTION);
					return;
				}
				else{
					if(!((JFileTree)treeBox.getTree()).getSelectSubFile().isDirectory()){
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"请选择目标模板!",
								"模板库操作提示",
								JOptionPane.CLOSED_OPTION);
						return;
					}
				}
				
				if(fileName.getText().length() <= 0){
					JOptionPane.showConfirmDialog(FlowManager.getInstance(),
							"模板名称不能为空!",
							"模板库操作提示",
							JOptionPane.CLOSED_OPTION);
					return;
				}
				File file = ((JFileTree)treeBox.getTree()).getSelectSubFile();
				String[] files = file.list(new TemplateFactory.TemplateFileNameFilter("xml"));
				for(int i=0;i<files.length;i++){
					int pos = files[i].lastIndexOf(".");
					String compareName = files[i].substring(0, pos);
					if(compareName.equalsIgnoreCase(fileName.getText())){
						//提示存在相同名称的文件存在
						JOptionPane.showConfirmDialog(FlowManager.getInstance(),
								"已经存在名称为"+fileName.getText()+"的模板文件",
								"模板库操作提示",
								JOptionPane.CLOSED_OPTION);
						return;
					}
				}
				File addFile = new File(file.getAbsolutePath()+"/"+fileName.getText()+".xml");
				final String readfile = file.getAbsolutePath()+"/"+fileName.getText()+".xml";

				String modelName = file.getName();
				//System.out.println("name1="+file.getName());
				try {
					if(addFile.createNewFile()){
						//写模板文件
						writeGraphString(file.getAbsolutePath()+"/"+fileName.getText()+".xml");
					}
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				SelectButton sb = new SelectButton(fileName.getText()){
					public void actionPerformed(Point2D point){
						//System.out.println(graphTemplate.getName());
					}
					public Object performedAction(Point2D point){
						return readGraphFile(readfile);
					}
				};
				sb.setToolTipText(fileName.getText());
				if(((JButtonGroup)((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).getUserObject(modelName)) == null){
					JButtonGroup jbg = new JButtonGroup();
					jbg.add(sb);
					((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).addUserObject(modelName, jbg);
				}
				else{
					((JButtonGroup)((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).getUserObject(modelName)).add(sb);
				}
				((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).addMember(modelName, sb);
				((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).expandGroup(modelName);
				//((JButtonGroup)FlowManager.getInstance().getGroupPanel().getGroupPanel().getUserObject(modelName)).add(sb);
				//FlowManager.getInstance().getGroupPanel().getGroupPanel().addMember(modelName, sb);
				JFileTree fileTree1 = new JFileTree(new JFileTree.TemplateFilter(), System.getProperty("user.dir")+"/"+TemplateFactory.TEMPLATE_PATH);
				treeBox.setTree(fileTree1);
				fileName.setText("");
			}			
		});
		
		modifyTemplateButton = new JButton("修  改");
		modifyTemplateButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				dialog.dispose();
				//System.out.println(treeBox.getSelectedItem().toString());
			}			
		});
		
		
		deleteTemplateButton = new JButton("删  除");
		deleteTemplateButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(((JFileTree)treeBox.getTree()).getSelectSubFile() != null){
					File file = ((JFileTree)treeBox.getTree()).getSelectSubFile();
					System.out.println("file="+file.getName());
					if(file.isDirectory()){
						//选择模板库
						//((JButtonGroup)((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).getUserObject(modelName)).add(sb);
						((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).removeGroup(file.getName());
						deleteDir(file);
						((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).expandGroup();
					}
					else{
						//选择模板
						//((JButtonGroup)((JGroupPanel)FlowManager.getInstance().getGroupPanel().getGroupPanel().getMember(1, 0)).getUserObject(modelName)).add(sb);

⌨️ 快捷键说明

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