package com.vci.client.portal.NewUI; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileFilter; import javax.swing.tree.TreePath; import org.apache.poi.hssf.usermodel.HSSFCell; 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.portal.data.PLAction; import com.vci.corba.portal.data.PLCommandParameter; import com.vci.corba.portal.data.PLPageDefination; import com.vci.corba.portal.data.PLUILayout; import com.vci.corba.portal.data.PLTabButton; import com.vci.corba.portal.data.PLTabPage; import com.vci.client.LogonApplication; import com.vci.client.framework.delegate.FunctionClientDelegate; import com.vci.client.framework.delegate.RoleRightClientDelegate; import com.vci.client.framework.rightConfig.modelConfig.ModuleTreeCellRenderer; import com.vci.client.framework.rightConfig.object.FuncOperationObject; import com.vci.client.framework.rightConfig.object.FunctionObject; import com.vci.client.framework.rightdistribution.object.RoleRightObject; import com.vci.client.portal.utility.UITools; import com.vci.client.ui.exception.VCIException; import com.vci.client.ui.locale.LocaleDisplay; 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.common.utility.ObjectUtility; import com.vci.corba.common.VCIError; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; public class ExpDialog extends JDialog { /** * */ private static final long serialVersionUID = 1L; private final JPanel contentPanel = new JPanel(); private VCIBaseTree tree; private VCIBaseTreeModel treeModel; private CheckBoxTreeManager treeManager; private VCIBaseTreeNode rootNode; private JScrollPane scrollPane ; private JTree btTree; private String btname; private String plpageLayoutDefinationId= ""; List nodeList = new ArrayList(); HSSFWorkbook workbook; HSSFSheet sheet_pagelayoutdefination; HSSFSheet sheet_pagedefination; HSSFSheet sheet_tabpage; HSSFSheet sheet_tabbutton; HSSFSheet sheet_commondParam; HSSFSheet sheet_action; int pageLayoutDefinationindex = 0; int tabpageIndex = 0; int pagedefinationIndex = 0; int tabbuttonIndex = 0; int commondParamIndex = 0; int actionIndex = 0; /** * 记录action信息 */ List actionList = new ArrayList(); private String xfileName = ""; /** * Create the dialog. */ public ExpDialog(JTree btTree) { super(LogonApplication.frame,true); this.btTree = btTree; init(); initTreeNode(); this.setLocationRelativeTo(null); } private void init() { setBounds(100, 100, 450, 300); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(new BorderLayout(0, 0)); { scrollPane = new JScrollPane(); contentPanel.add(scrollPane, BorderLayout.CENTER); } { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { JButton okButton = new JButton("确定"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { TreePath[] treePath = treeManager.getSelectionModel().getSelectionPaths(); if(treePath == null){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择要导出的节点!"); return; } openFileChoser(); if (treePath != null) { pageLayoutDefinationindex = 0; tabpageIndex = 0; pagedefinationIndex = 0; tabbuttonIndex = 0; commondParamIndex = 0; for(int i = 0;i < treePath.length;i++){ VCIBaseTreeNode node = (VCIBaseTreeNode)treePath[i].getLastPathComponent(); Object obj = node.getObj(); if(obj instanceof String){//如果是root节点,则保存所有模块 getNextNode(node,false);//向下获取所有几点 }else if(obj instanceof PLUILayout){ getNextNode(node,false);//向下处理(包含当前节点) }else if (obj instanceof PLTabPage){ getNextNode(node,true); savePlpageLayoutDefinationRelation(obj); } } } if(writeFile()){ VCIOptionPane.showMessage(LogonApplication.frame, "导出成功"); dispose(); } } }); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("关闭"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { dispose(); } }); buttonPane.add(cancelButton); } } workbook = new HSSFWorkbook(); sheet_pagelayoutdefination = workbook.createSheet(); workbook.setSheetName(0, "PlpageLayoutDefnation"); sheet_tabpage = workbook.createSheet(); workbook.setSheetName(1, "Pltabpage"); sheet_pagedefination = workbook.createSheet(); workbook.setSheetName(2, "Plpagedefination"); sheet_tabbutton = workbook.createSheet(); workbook.setSheetName(3, "Pltabbutton"); sheet_commondParam = workbook.createSheet(); workbook.setSheetName(4, "PlcommondParam"); sheet_action = workbook.createSheet(); workbook.setSheetName(5, "PlAction"); } public void initTreeNode(){ rootNode = new VCIBaseTreeNode("区域", "root"); treeModel = new VCIBaseTreeModel(rootNode); tree = new VCIBaseTree(treeModel, new ModuleTreeCellRenderer()); TreePath path = btTree.getSelectionPath(); if(path==null){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择一个类型!"); return; } VCIBaseTreeNode node = (VCIBaseTreeNode) path.getLastPathComponent(); BtmItem obj = (BtmItem) node.getObj(); btname = obj.name; try { PLUILayout[] plpagelayoutdefinations = UITools.getService().getPLUILayoutsByRelatedType(btname); for(int i=0;i0){ commondParamIndex += pLCommandParameters.length; } } tabbuttonIndex += pLTabButtons.length; } pagedefinationIndex += pLPageDefinations.length; } catch (VCIError e) { e.printStackTrace(); } } private void openFileChoser(){ JFileChooser jf = new JFileChooser(); jf.setDialogTitle("打开"); jf.removeChoosableFileFilter(jf.getFileFilter()); jf.setFileFilter(new FileFilter() { @Override public String getDescription() { return "xls"; } @Override public boolean accept(File f) { if(f.isDirectory()||f.getName().endsWith(".xls")){ return true; }else{ return false; } } }); int showOpenDialog = jf.showOpenDialog(LogonApplication.frame); if (showOpenDialog == JFileChooser.APPROVE_OPTION) { File file = jf.getSelectedFile(); xfileName = file.getAbsolutePath(); if(!xfileName.endsWith(".xls")){ xfileName = xfileName+".xls"; } } } private boolean writeFile(){ try { FileOutputStream fout = new FileOutputStream(xfileName); workbook.write(fout); fout.flush(); fout.close(); System.out.println("文件生成....."); return true; } catch (FileNotFoundException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } } }