package com.vci.client.oq.ui; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.filechooser.FileFilter; import javax.swing.tree.TreePath; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.vci.corba.omd.btm.BtmItem; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTInfo; import com.vci.client.LogonApplication; import com.vci.client.common.providers.ServiceProvider; import com.vci.client.framework.rightConfig.modelConfig.ModuleTreeCellRenderer; import com.vci.client.omd.provider.BtmProvider; import com.vci.client.oq.QTClient; import com.vci.client.oq.QTDClient; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.tree.CheckBoxTreeManager; import com.vci.client.ui.tree.VCIBaseTree; import com.vci.client.ui.tree.VCIBaseTreeModel; import com.vci.client.ui.tree.VCIBaseTreeNode; import com.vci.corba.common.VCIError; public class ExpQTDialog extends JDialog { private static final long serialVersionUID = 1L; private CheckBoxTreeManager treeManager; private String exportFileName; private File selectedFile; public ExpQTDialog(){ super(LogonApplication.frame,true); this.initUI(); this.setSize(500, 500); this.setLocationRelativeTo(null); } private void initUI() { try { JScrollPane contentPanel = this.getContentPanel(); this.getContentPane().add(contentPanel, BorderLayout.CENTER); JPanel btnPanel = this.getBtnPanel(); this.getContentPane().add(btnPanel, BorderLayout.SOUTH); } catch (VCIError e) { e.printStackTrace(); } } private JScrollPane getContentPanel() throws VCIError { JScrollPane contentPanel = new JScrollPane(); VCIBaseTreeNode rootNode = new VCIBaseTreeNode("业务类型模板","root"); VCIBaseTreeModel treeModel = new VCIBaseTreeModel(rootNode); //业务类型 BtmItem[] allBtItems = BtmProvider.getInstance().getAllBtmItems(); for(int i=0;i selQTS = new ArrayList(); for(int i = 0;i < treePath.length;i++){ VCIBaseTreeNode node = (VCIBaseTreeNode)treePath[i].getLastPathComponent(); Object obj = node.getObj(); if(obj instanceof String){//如果是root节点,则保存所有模块 String nodeName = (String)obj; if("root".equals(nodeName)){ QTInfo[] allQTS = ServiceProvider.getOMDService().getQTDService().getAllQTs(); BtmItem[] allBtItems = BtmProvider.getInstance().getAllBtmItems(); List btmNames = new ArrayList(); for(BtmItem btm: allBtItems){ btmNames.add(btm.name); } for(QTInfo qt: allQTS){ if(qt.btmName != null && qt.btmName.trim().length() > 0 && btmNames.contains(qt.btmName)){ selQTS.add(qt); } } // Collections.addAll(selQTS, allQTS); } }else if(obj instanceof QTInfo){ selQTS.add((QTInfo)obj); }else if(obj instanceof BtmItem){ BtmItem btmItem = (BtmItem)obj; QTInfo[] qtsByBtmName = ServiceProvider.getOMDService().getQTDService().getObjTypeQTs(btmItem.name); Collections.addAll(selQTS, qtsByBtmName); } } System.out.println(selQTS.size()); openFileChoser(); if(writeFile(selQTS)){ VCIOptionPane.showMessage(LogonApplication.frame, "导出成功"); setVisible(false); }else{ VCIOptionPane.showMessage(LogonApplication.frame, "导出失败!"); } } catch (VCIError e) { e.printStackTrace(); VCIOptionPane.showMessage(LogonApplication.frame, "导出异常!"); } }else{ VCIOptionPane.showMessage(LogonApplication.frame, "请选择要导出的模板定义!"); return; } } }); return btnPanel; } private void openFileChoser() { JFileChooser jf = new JFileChooser(); jf.removeChoosableFileFilter(jf.getFileFilter()); jf.setFileFilter(new FileFilter() { public String getDescription() { return "xls"; } public boolean accept(File f) { return ((f.isDirectory()) || (f.getName().endsWith(".xls"))); } }); jf.setDialogTitle("打开"); int showOpenDialog = jf.showOpenDialog(LogonApplication.frame); if(showOpenDialog == JFileChooser.APPROVE_OPTION){ selectedFile = jf.getSelectedFile(); exportFileName = selectedFile.getAbsolutePath(); if(!exportFileName.endsWith(".xls")){ exportFileName = exportFileName + ".xls"; } } } private boolean writeFile(List qTS) { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow titleRow = sheet.createRow(0); HSSFCell cell = titleRow.createCell(0); cell.setCellValue(new HSSFRichTextString("模板名称")); cell = titleRow.createCell(1); cell.setCellValue("业务类型"); cell = titleRow.createCell(2); cell.setCellValue("查询模板级别"); cell = titleRow.createCell(3); cell.setCellValue("查询模板"); cell = titleRow.createCell(4); cell.setCellValue("查询模板界面"); cell = titleRow.createCell(5); cell.setCellValue("创建人"); cell = titleRow.createCell(6); cell.setCellValue("创建时间"); for(int i=0; i