package com.vci.client.oq.ui.linkqtexport;
import java.awt.Color;
import java.awt.Font;
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.common.providers.ServiceProvider;
import com.vci.client.omd.linktype.LinkTypeStart;
import com.vci.client.oq.QTClient;
import com.vci.client.oq.QTDClient;
import com.vci.client.portal.UI.dialog.VCIGuideStepPanel;
import com.vci.client.ui.swing.components.VCIJOptionPane;
import com.vci.corba.omd.qtm.QTInfo;
/**
* Action导出步骤1界面
* @Title :ExpActionStep1Panel.java
* @Description :
* @Copyright :宏博远达科技有限公司
* @Author :平台与规划部/ZhongGY/E-mail:zhonggy@vci-tech.com
* @Date :2015-6-5
* @Version :1
* @Other :产生注释:Alt+Shift+J
*/
public class LinkQTExpQTStep1Panel extends VCIGuideStepPanel {
private static final long serialVersionUID = 1L;
private LinkQTExportTree exportTree ;
private JTextField txtDirectory;
private JButton btnSelDirectory;
private String exportFilePath = "c"+File.pathSeparator;
private JScrollPane scrollPane = new JScrollPane();
public LinkQTExpQTStep1Panel() {
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.setForeground(Color.BLACK);
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) {
LinkQTExpQTStep1Panel.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() {
Object shareTreeData = getGuidCommonShareData().get("exportTree");
if(shareTreeData!=null){
shareTreeData = null;
}
if (shareTreeData == null || !(shareTreeData instanceof LinkQTExportTree)) {
exportTree = new LinkQTExportTree();
getGuidCommonShareData().put("exportTree", exportTree);
scrollPane.setViewportView(exportTree);
exportTree.init();
}
initData();
}
@Override
//执行“导出”树的初始化,并添加到scrollPane中
public void initData() {
}
private void openFileChoser() {
JFileChooser jf = new JFileChooser();
jf.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jf.removeChoosableFileFilter(jf.getFileFilter());
jf.setFileFilter(new FileFilter() {
public String getDescription() {
return "文件夹";
}
public boolean accept(File f) {
return (f.isDirectory());
}
});
jf.setDialogTitle("选择导出目录");
int showOpenDialog = jf.showOpenDialog(LogonApplication.frame);
if (showOpenDialog == JFileChooser.APPROVE_OPTION) {
File selectedFile = jf.getSelectedFile();
exportFilePath = selectedFile.getAbsolutePath();
this.getGuidCommonShareData().put("exportFilePath", exportFilePath);
txtDirectory.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
txtDirectory.setForeground(Color.black);
txtDirectory.setText(exportFilePath);
}
}
@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 (exportTree == null) {
//TODO:提示
VCIJOptionPane.showMessage(this, "树不存在!");
return false;
}
TreePath[] selecPaths = exportTree.getSelectionPaths();
Map allQTs = new HashMap();
if (selecPaths == null || selecPaths.length ==0) {
//TODO:提示
VCIJOptionPane.showMessage(this, "您没有选择数据!");
return false;
} else {
List