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