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

📄 driverstreepanel.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * to repaint the tree display.     */    protected void nodeNameValueChanged(DatabaseDriver driver) {        TreeNode node = tree.getNodeFromRoot(driver);        if (node != null) {            tree.nodeChanged(node);        }    }    private void checkDriversPanel() {        // check we have a drivers panel        if (driversPanel == null) {            driversPanel = new DriverViewPanel(this);        }        // check the panel is in the pane        JPanel _viewPanel = GUIUtilities.getCentralPane(DriversPanel.TITLE);        if (_viewPanel == null) {            GUIUtilities.addCentralPane(DriversPanel.TITLE,                                        DriversPanel.FRAME_ICON,                                         driversPanel,                                        "JDBC Drivers",                                        true);        } else {            GUIUtilities.setSelectedCentralPane(DriversPanel.TITLE);        }    }        public void valueChanged(TreeSelectionEvent e) {        Object object = e.getPath().getLastPathComponent();        if (object instanceof DatabaseDriverNode) {            enableButtons(true);            checkDriversPanel();            DatabaseDriverNode node = (DatabaseDriverNode)object;            driversPanel.valueChanged(node);        }        else if (object == tree.getRootNode()) {            checkDriversPanel();            driversPanel.displayRootPanel();            enableButtons(false);        }        else {            enableButtons(false);        }    }        /**     * Returns the database driver at the specified point.     *     * @return the driver properties object     */    protected DatabaseDriver getDriverAt(Point point) {        TreePath path = tree.getPathForLocation(point.x, point.y);        return getDriverAt(tree.getPathForLocation(point.x, point.y));    }    /**     * Returns the database driver associated with the specified path.     *     * @return the driver properties object     */    protected DatabaseDriver getDriverAt(TreePath path) {        if (path != null) {            Object object = path.getLastPathComponent();            if (object instanceof DatabaseDriverNode) {                return ((DatabaseDriverNode)object).getDriver();            }        }        return null;    }    /**     * Returns the name of a new driver to be added where     * the name of the driver may already exist.     *     * @param name - the name of the driver     */    private String buildDriverName(String name) {        int count = 0;        for (int i = 0, n = savedDrivers.size(); i < n; i++) {            DatabaseDriver driver = savedDrivers.get(i);            if (driver.getName().startsWith(name)) {                count++;            }        }        if (count > 0) {            count++;            name += " " + count;        }        return name;    }        public String toString() {        return TITLE;    }    // ----------------------------------------    // DockedTabView Implementation    // ----------------------------------------    public static final String MENU_ITEM_KEY = "viewDrivers";        public static final String PROPERTY_KEY = "system.display.drivers";        /**     * Returns the display title for this view.     *     * @return the title displayed for this view     */    public String getTitle() {        return TITLE;    }    /**     * Returns the name defining the property name for this docked tab view.     *     * @return the key     */    public String getPropertyKey() {        return PROPERTY_KEY;    }    /**     * Returns the name defining the menu cache property     * for this docked tab view.     *     * @return the preferences key     */    public String getMenuItemKey() {        return MENU_ITEM_KEY;    }    private class DriversTreeCellRenderer extends AbstractTreeCellRenderer {        private Color textBackground;        private Color textForeground;        private Color selectedBackground;        private Color selectedTextForeground;        private ImageIcon driverImage;        private ImageIcon driverRootImage;        public DriversTreeCellRenderer() {            driverRootImage = GUIUtilities.loadIcon("DatabaseDrivers16.gif", true);            driverImage = GUIUtilities.loadIcon("JDBCDriver16.gif", true);                        textBackground = UIManager.getColor("Tree.textBackground");            textForeground = UIManager.getColor("Tree.textForeground");            selectedBackground = UIManager.getColor("Tree.selectionBackground");            selectedTextForeground = UIManager.getColor("Tree.selectionForeground");                        if (UIUtils.isGtkLookAndFeel()) {                setBorderSelectionColor(null);            }            //setFont(new Font("Dialog", Font.PLAIN, 11));        }        public Component getTreeCellRendererComponent(JTree tree,                Object value, boolean bSelected, boolean bExpanded,                boolean bLeaf, int iRow, boolean bHasFocus) {            String labelText = value.toString();            if (value instanceof DefaultTreeRootNode) {                setIcon(driverRootImage);            }            else if (value instanceof DatabaseDriverNode) {                setIcon(driverImage);            }            // Add the text to the cell            setText(labelText);            // Add a tool tip displaying the name            setToolTipText(labelText);                        selected = bSelected;                        if(!selected) {                setBackground(textBackground);                setForeground(textForeground);            } else {                setBackground(selectedBackground);                   setForeground(selectedTextForeground);            }            return this;        }                    } // class DriversTreeCellRenderer        /** The tree's popup menu function */    private class PopMenu extends JPopupMenu implements ActionListener {                private JMenuItem duplicate;        private JMenuItem delete;        private JMenuItem properties;        private JMenuItem addNewDriver;                protected TreePath popupPath;        protected DatabaseDriver hover;                public PopMenu() {            addNewDriver = new JMenuItem("New Driver");            addNewDriver.addActionListener(this);                        duplicate = new JMenuItem("Duplicate");            duplicate.addActionListener(this);            delete = new JMenuItem("Remove");            delete.addActionListener(this);            properties = new JMenuItem("Driver Properties");            properties.addActionListener(this);            add(addNewDriver);            addSeparator();            add(duplicate);            add(delete);            addSeparator();            add(properties);        }        protected void setMenuItemsText() {            if (hover != null) {                String name = hover.getName();                delete.setText("Remove Driver " + name);                duplicate.setText("Create Duplicate of Driver " + name);            }        }                public void actionPerformed(ActionEvent e) {            try {                Object source = e.getSource();                if (source == duplicate) {                    if (hover != null) {                        String name = buildDriverName(hover.getName() + " (Copy") + ")";                        DatabaseDriver dd = new DatabaseDriver(name);                        dd.setClassName(hover.getClassName());                        dd.setDatabaseType(hover.getType());                        dd.setDescription(hover.getDescription());                        dd.setId(System.currentTimeMillis());                        dd.setPath(hover.getPath());                        dd.setURL(hover.getURL());                        newDriver(dd);                    }                }                else if (source == delete) {                    if (popupPath != null) {                        DatabaseDriverNode node =                                 (DatabaseDriverNode)popupPath.getLastPathComponent();                        deleteDriver(node);                    }                }                else if (source == properties) {                    reloadView = true;                    setSelectedDriver(hover);                }                else if (source == addNewDriver) {                    newDriver();                }            } finally {                reloadView = false;                hover = null;                popupPath = null;            }        }    } // class PopMenu    private class MouseHandler extends MouseAdapter {                public MouseHandler() {}                public void mouseClicked(MouseEvent e) {            if (e.getClickCount() < 2) {                return;            }            TreePath path = tree.getPathForLocation(e.getX(), e.getY());            if (path == tree.getSelectionPath()) {                valueChanged(new TreeSelectionEvent(                        tree, path, true, path, path));            }        }                public void mousePressed(MouseEvent e) {            maybeShowPopup(e);        }        public void mouseReleased(MouseEvent e) {            maybeShowPopup(e);        }        private void maybeShowPopup(MouseEvent e) {            if (e.isPopupTrigger()) {                                if (popupMenu == null) {                    popupMenu = new PopMenu();                }                Point point = new Point(e.getX(), e.getY());                popupMenu.popupPath = tree.getPathForLocation(point.x, point.y);                // get the connection at this point                popupMenu.hover = getDriverAt(point);                if (popupMenu.hover != null) {                    try {                        tree.removeTreeSelectionListener(DriversTreePanel.this);                        popupMenu.setMenuItemsText();                        tree.setSelectionPath(popupMenu.popupPath);                    }                    finally {                        tree.addTreeSelectionListener(DriversTreePanel.this);                    }                    popupMenu.show(e.getComponent(), point.x, point.y);                }            }        }    } // class MouseHandler}

⌨️ 快捷键说明

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