⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 virtualfilesystemview.java

📁 将用户指定的数据保存成一个iso文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * VirtualFileSystemView.java * * Created on November 21, 2002, 11:40 AM */package jcdwriter.ui;import javax.swing.*;import javax.swing.tree.*;import java.awt.datatransfer.*;import java.awt.dnd.*;import java.awt.Cursor;import java.awt.Point;import java.util.StringTokenizer;import java.util.*;import java.io.File;import java.util.Collections;import jcdwriter.model.*;import jcdwriter.model.Log;/** * * @author  rmallappa */public class VirtualFileSystemView extends javax.swing.JPanel implements javax.swing.event.TreeWillExpandListener, javax.swing.event.TreeExpansionListener, java.awt.dnd.DropTargetListener{        /** Creates new form VirtualFileSystemView */    public VirtualFileSystemView() {        DefaultTreeCellRenderer treeCellRenderer;        initComponents();        initializeFileSystemRoots();        treeCellRenderer = (DefaultTreeCellRenderer)directoryTree.getCellRenderer();        treeCellRenderer.setLeafIcon(treeCellRenderer.getClosedIcon());      /*Remove the transfer handler so that it does not do its own copy/paste.        This was causing exception when nothing in the JTree is selected.*/        directoryTree.setTransferHandler(null);        directoryTree.setExpandsSelectedPaths(true);                //set default model and icons for the fileList.        fileList.setModel(new DefaultListModel());                dropTarget = new DropTarget(directoryTree, this);    }            private void initializeFileSystemRoots(){        VirtualFileSystemNode rootNode = null;        rootNode = new VirtualFileSystemNode("Virtual_ROOT");        rootNode.isVirtualFileSystemRoot(true);        ((DefaultTreeModel)directoryTree.getModel()).setRoot(rootNode);        //        directoryTree.setShowsRootHandles(true);    }            private void initComponents() {        dirAndFilesSplitPane = new javax.swing.JSplitPane();        directoryTreeScrollPane = new javax.swing.JScrollPane();        directoryTree = new javax.swing.JTree();        fileListScrollPane = new javax.swing.JScrollPane();        fileList = new javax.swing.JList();                setLayout(new java.awt.BorderLayout());                dirAndFilesSplitPane.setDividerSize(5);        dirAndFilesSplitPane.setMaximumSize(null);        dirAndFilesSplitPane.setMinimumSize(new java.awt.Dimension(150, 100));        dirAndFilesSplitPane.setPreferredSize(new java.awt.Dimension(300, 150));        directoryTreeScrollPane.setMaximumSize(null);        directoryTreeScrollPane.setMinimumSize(new java.awt.Dimension(150, 150));        directoryTree.setMaximumSize(null);        directoryTree.setMinimumSize(null);        directoryTree.setPreferredSize(null);        directoryTree.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(java.awt.event.KeyEvent evt) {                directoryTreeKeyReleased(evt);            }        });                directoryTree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {                directoryTreeValueChanged(evt);            }        });                directoryTree.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {            public void treeWillExpand(javax.swing.event.TreeExpansionEvent evt)            throws javax.swing.tree.ExpandVetoException {                directoryTreeTreeWillExpand(evt);            }            public void treeWillCollapse(javax.swing.event.TreeExpansionEvent evt)            throws javax.swing.tree.ExpandVetoException {                directoryTreeTreeWillCollapse(evt);            }        });                directoryTreeScrollPane.setViewportView(directoryTree);                dirAndFilesSplitPane.setLeftComponent(directoryTreeScrollPane);                fileListScrollPane.setMaximumSize(null);        fileListScrollPane.setMinimumSize(new java.awt.Dimension(10, 10));        fileList.setMaximumSize(null);        fileList.setMinimumSize(null);        fileList.setPreferredSize(null);        fileListScrollPane.setViewportView(fileList);                dirAndFilesSplitPane.setRightComponent(fileListScrollPane);                add(dirAndFilesSplitPane, java.awt.BorderLayout.CENTER);                fileList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {                fileListSelectionChanged(evt);            }        });            }            private void fileListSelectionChanged(javax.swing.event.ListSelectionEvent evt){        jcdwriter.model.Log.writeln("VirtualFileSystemView:", "You selected something in file list", 4);        int selFiles[] = fileList.getSelectedIndices();        Log.writeln("VirtualFileSystemView: num files selected: ", String.valueOf(selFiles.length), 4);    };            private void directoryTreeValueChanged(javax.swing.event.TreeSelectionEvent evt) {        try {            refreshFileListForPath(evt.getPath());        }        catch (Exception e) {            System.out.println("Exception in directoryTreeValueChanged.");        }    }        private void directoryTreeTreeWillCollapse(javax.swing.event.TreeExpansionEvent evt) throws javax.swing.tree.ExpandVetoException {    }        private void directoryTreeTreeWillExpand(javax.swing.event.TreeExpansionEvent evt) throws javax.swing.tree.ExpandVetoException {    }        private void directoryTreeKeyReleased(java.awt.event.KeyEvent evt) {        if ((evt.getModifiers() == java.awt.event.KeyEvent.CTRL_MASK) && (evt.getKeyCode() == java.awt.event.KeyEvent.VK_V)) {            pasteFromClipboard();        }        else {/*   INSERT DELETE are shortcuts from main menu now.            if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_INSERT) {                insertNewNode();            }            else {                if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_DELETE) {                    eraseSelectedNode();                }            } */        }    }        protected void processKeyEvent(java.awt.event.KeyEvent evt) {        //        System.out.println("Process Key Event");    }        public void insertNewNode(){        TreePath[]      selectedPaths;        VirtualFileSystemNode selectedNode;        selectedPaths = directoryTree.getSelectionPaths();        if (selectedPaths == null) return;        if (selectedPaths.length != 1) return;        selectedNode = (VirtualFileSystemNode)selectedPaths[0].getLastPathComponent();        String newDirName = JOptionPane.showInputDialog("Name of new directory?");        if (newDirName != null && newDirName.length() > 0) {            if(!selectedNode.isNameAlreadyTaken(newDirName)){                VirtualFileSystemNode newNode = new VirtualFileSystemNode(newDirName);                newNode.isCreatedDirectory(true);                selectedNode.add(newNode);                ((DefaultTreeModel)directoryTree.getModel()).reload(selectedNode);            }            else                System.out.println("Name: " + newDirName + " already taken");        }    }        public void eraseSelectedNode() {   /* incomplete.  should work again on delete functionality when other things are stable */        int i = 1;        if (i > 1) return;        TreePath[]      selectedPaths;        VirtualFileSystemNode selectedNode, parentNode;                selectedPaths = directoryTree.getSelectionPaths();        if (selectedPaths == null) return;        /* For now, allow deleting nodes one-by-one only */        if (selectedPaths.length != 1) return;        selectedNode = (VirtualFileSystemNode)selectedPaths[0].getLastPathComponent();        parentNode = (VirtualFileSystemNode)selectedNode.getParent();                if (JOptionPane.showConfirmDialog(this,                         "  Delete '" + selectedNode.name() + "'",                         "Delete Confirmation",                         JOptionPane.YES_NO_OPTION) == 0) {            ((VirtualFileSystemNode)parentNode).deleteNode(selectedNode);            ((DefaultTreeModel)directoryTree.getModel()).reload(parentNode);            ((DefaultListModel)fileList.getModel()).removeAllElements();            printVirtualFileSystemSize();        }    }        private void pasteFromClipboard() {        Transferable dataHolder;        String transferData, nextToken;        StringTokenizer pathsEnum;        TreePath[]      selectedPaths;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -