package com.vci.client.oq.ui.linkqtimport;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import com.vci.client.LogonApplication;
import com.vci.client.oq.ui.export.QTExportQTNode;
import com.vci.client.oq.ui.linkqtexport.LinkQTExportBTMNode;
import com.vci.client.portal.UI.dialog.VCIGuideStepPanel;
import com.vci.client.ui.swing.components.VCIJOptionPane;
import com.vci.corba.omd.qtm.QTInfo;
public class LinkQTImpQTStep1Panel extends VCIGuideStepPanel{
private static final long serialVersionUID = 1L;
private LinkQTImportTree importTree ;
private JTextField txtDirectory;
private JButton btnSelDirectory;
private String filePath = "c"+File.pathSeparator;
private JScrollPane scrollPane = new JScrollPane();
public LinkQTImpQTStep1Panel() {
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[]{0, 0, 0, 0};
gridBagLayout.rowHeights = new int[]{0, 30, 0};
gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
setLayout(gridBagLayout);
JLabel label_2 = new JLabel(" ");
GridBagConstraints gbc_label_2 = new GridBagConstraints();
gbc_label_2.insets = new Insets(0, 0, 5, 5);
gbc_label_2.gridx = 0;
gbc_label_2.gridy = 0;
add(label_2, gbc_label_2);
// JScrollPane scrollPane = new JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.insets = new Insets(0, 0, 5, 5);
gbc_scrollPane.gridx = 1;
gbc_scrollPane.gridy = 0;
add(scrollPane, gbc_scrollPane);
JLabel label = new JLabel(" ");
GridBagConstraints gbc_label = new GridBagConstraints();
gbc_label.insets = new Insets(0, 0, 5, 0);
gbc_label.gridx = 2;
gbc_label.gridy = 0;
add(label, gbc_label);
JPanel panel = new JPanel();
GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 0, 5);
gbc_panel.fill = GridBagConstraints.BOTH;
gbc_panel.gridx = 1;
gbc_panel.gridy = 1;
add(panel, gbc_panel);
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[]{0, 0, 0, 0};
gbl_panel.rowHeights = new int[]{0, 0};
gbl_panel.columnWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
gbl_panel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
panel.setLayout(gbl_panel);
JLabel label_3 = new JLabel("导出文件:");
GridBagConstraints gbc_label_3 = new GridBagConstraints();
gbc_label_3.insets = new Insets(0, 0, 0, 5);
gbc_label_3.anchor = GridBagConstraints.EAST;
gbc_label_3.gridx = 0;
gbc_label_3.gridy = 0;
panel.add(label_3, gbc_label_3);
txtDirectory = new JTextField();
txtDirectory.setText("请选择导入目录...");
txtDirectory.setEditable(false);
txtDirectory.setBackground(SystemColor.control);
GridBagConstraints gbc_txtDirectory = new GridBagConstraints();
gbc_txtDirectory.insets = new Insets(0, 0, 0, 5);
gbc_txtDirectory.fill = GridBagConstraints.HORIZONTAL;
gbc_txtDirectory.gridx = 1;
gbc_txtDirectory.gridy = 0;
panel.add(txtDirectory, gbc_txtDirectory);
txtDirectory.setColumns(10);
btnSelDirectory = new JButton("...");
btnSelDirectory.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LinkQTImpQTStep1Panel.this.selectDirectory(e);
}
});
GridBagConstraints gbc_btnSelDirectory = new GridBagConstraints();
gbc_btnSelDirectory.anchor = GridBagConstraints.EAST;
gbc_btnSelDirectory.gridx = 2;
gbc_btnSelDirectory.gridy = 0;
panel.add(btnSelDirectory, gbc_btnSelDirectory);
}
/**
* 选择目录
* @Title :selectDirectory
* @Description :
* @param e
*/
public void selectDirectory(ActionEvent e) {
//TODO:给txtDirectory赋值
this.openFileChoser();
}
@Override
public void initUI() {
//可不处理,默认加载即可
LinkQTImportTree shareTreeData = (LinkQTImportTree)getGuidCommonShareData().get("importTree");
if(shareTreeData!=null && shareTreeData instanceof LinkQTImportTree){
/*shareTreeData = null;
System.gc();*/
}
if (shareTreeData == null || !(shareTreeData instanceof LinkQTImportTree)) {
importTree = new LinkQTImportTree();
getGuidCommonShareData().put("importTree", importTree);
// scrollPane.setViewportView(importTree);
// exportTree.init();
}
initData();
if(this.filePath!=null){
renderUIByObjectFile(filePath);
}
}
private void renderUIByObjectFile(String filePath2) {
// TODO Auto-generated method stub
this.getGuidCommonShareData().put("filePath", filePath);
//设置面板显示信息
// txtDirectory.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
// txtDirectory.setForeground(Color.red);
txtDirectory.setText(filePath);
importTree = (LinkQTImportTree) getGuidCommonShareData().get("importTree");
importTree.initTree(filePath);
scrollPane.setViewportView(importTree);
}
public void setFilePath(String filePath){
this.filePath = filePath;
}
@Override
//执行“导出”树的初始化,并添加到scrollPane中
public void initData() {
// TODO:主要处理结构树的加载(包括树结构勾选逻辑)
// 初始化树
}
//面板初始化
private void openFileChoser() {
JFileChooser jf = new JFileChooser();
jf.setFileSelectionMode(JFileChooser.FILES_ONLY);
jf.removeChoosableFileFilter(jf.getFileFilter());
jf.setFileFilter(new FileFilter() {
public String getDescription() {
return "文件夹";
}
public boolean accept(File f) {
return (f.isDirectory() || f.getName().endsWith(".vciqtf"));
}
});
jf.setDialogTitle("选择查询模板导出文件");
int showOpenDialog = jf.showOpenDialog(LogonApplication.frame);
if (showOpenDialog == JFileChooser.APPROVE_OPTION) {
File selectedFile = jf.getSelectedFile();
filePath = selectedFile.getAbsolutePath();;
renderUIByObjectFile(filePath);
}
}
@Override
public String getStepName() {
// String firstStepName = null;
// if((firstStepName = (String)this.getCommonMap().get("firstStepName") )!= null){
// return firstStepName;
// }
return "第一步:查询模板选择";
}
@Override
public boolean isPreBtnVisible() {
//第一步没有“上一步”
return false;
}
@Override
public String getPreBtnText() {
return null;
}
@Override
public boolean doPreBtnAction() {
return false;
}
@Override
public boolean isNextBtnVisible() {
return true;
}
@Override
public String getNextBtnText() {
return "导入";
}
/**
* 导出的主要处理入口
*/
@Override
public boolean doNextBtnAction() {
// 判断当前是否选择正确(如果没有正确选择到模板那么直接提示并终止下一步)
try {
if (importTree == null) {
//TODO:提示
VCIJOptionPane.showMessage(this, "树不存在!");
return false;
}
TreePath[] treePath = ((LinkQTImportTree) importTree)
.getTreeManager().getSelectionModel()
.getSelectionPaths();
Map allQTs = new HashMap();
if (treePath == null || treePath.length ==0) {
//TODO:提示
VCIJOptionPane.showMessage(this, "您没有选择数据!");
return false;
} else {
List