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

📄 propertiestoolbar.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
字号:
/* * PropertiesToolBar.java * * Copyright (C) 2002, 2003, 2004, 2005, 2006 Takis Diakoumis * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. * */package org.executequery.gui.prefs;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.util.Collections;import java.util.Vector;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ListSelectionModel;import javax.swing.table.AbstractTableModel;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumn;import javax.swing.table.TableColumnModel;import org.executequery.Constants;import org.executequery.GUIUtilities;import org.underworldlabs.swing.actions.ActionUtilities;import org.underworldlabs.swing.actions.ReflectiveAction;import org.underworldlabs.swing.toolbar.ButtonComparator;import org.underworldlabs.swing.toolbar.ToolBarButton;import org.underworldlabs.swing.toolbar.ToolBarProperties;import org.underworldlabs.swing.toolbar.ToolBarWrapper;/* ---------------------------------------------------------- * CVS NOTE: Changes to the CVS repository prior to the  *           release of version 3.0.0beta1 has meant a  *           resetting of CVS revision numbers. * ---------------------------------------------------------- *//** * * @author   Takis Diakoumis * @version  $Revision: 1.5 $ * @date     $Date: 2006/09/06 09:30:58 $ */public class PropertiesToolBar extends PropertiesBase {        private Vector selections;        private JTable table;        private ToolBarButtonModel toolButtonModel;    private static IconCellRenderer iconRenderer;    private static NameCellRenderer nameRenderer;        private JButton moveUpButton;    private JButton moveDownButton;    private JButton addSeparatorButton;    private JButton removeSeparatorButton;        /** The tool bar name */    private String toolBarName;    /** The tool bar wrapper */    private ToolBarWrapper toolBar;        public PropertiesToolBar(String toolBarName) {        this.toolBarName = toolBarName;                try  {            jbInit();        }        catch (Exception e) {            e.printStackTrace();        }            }        private void jbInit() {        ReflectiveAction action = new ReflectiveAction(this);        moveUpButton = ActionUtilities.createButton(                                action,                                 GUIUtilities.loadIcon("Up16.gif", true),                                null,                                 "moveUp");        moveDownButton = ActionUtilities.createButton(                                action,                                 GUIUtilities.loadIcon("Down16.gif", true),                                null,                                 "moveDown");        moveUpButton.setMargin(Constants.EMPTY_INSETS);        moveDownButton.setMargin(Constants.EMPTY_INSETS);                addSeparatorButton = ActionUtilities.createButton(                                               action,                                 "Add Separator",                                 "addSeparator");        addSeparatorButton.setToolTipText("Adds a separator above the selection");        removeSeparatorButton = ActionUtilities.createButton(                                action,                                 "Remove Separator",                                 "removeSeparator");        removeSeparatorButton.setToolTipText("Removes the selected separator");               ToolBarWrapper _toolBar = ToolBarProperties.getToolBar(toolBarName);        toolBar = (ToolBarWrapper)_toolBar.clone();        selections = toolBar.getButtonsVector();        setInitialValues();                iconRenderer = new IconCellRenderer();        nameRenderer = new NameCellRenderer();                toolButtonModel = new ToolBarButtonModel();        table = new JTable(toolButtonModel);        setTableProperties();                JScrollPane scroller = new JScrollPane(table);        scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);        scroller.getViewport().setBackground(Color.WHITE);                JPanel panel = new JPanel(new GridBagLayout());        GridBagConstraints gbc = new GridBagConstraints();        gbc.gridy = 0;        gbc.gridx = 0;        gbc.weightx = 1.0;        gbc.insets.bottom = 5;        gbc.gridwidth = 2;        gbc.fill = GridBagConstraints.HORIZONTAL;        gbc.anchor = GridBagConstraints.NORTHWEST;        panel.add(new JLabel(toolBarName + " - Buttons"), gbc);        gbc.gridy++;        gbc.weighty = 1.0;        gbc.fill = GridBagConstraints.BOTH;        panel.add(scroller, gbc);        gbc.gridy++;        gbc.weighty = 0;        gbc.insets.bottom = 0;        gbc.insets.right = 10;        gbc.gridwidth = 1;        gbc.fill = GridBagConstraints.HORIZONTAL;        panel.add(addSeparatorButton, gbc);        gbc.gridx++;        gbc.insets.right = 0;        panel.add(removeSeparatorButton, gbc);                JPanel movePanel = new JPanel(new GridBagLayout());        GridBagConstraints gbc2 = new GridBagConstraints();        gbc2.gridy = 0;        gbc2.insets.bottom = 5;        gbc2.anchor = GridBagConstraints.CENTER;        movePanel.add(moveUpButton, gbc2);        gbc2.gridy++;        movePanel.add(new JLabel("Move"), gbc2);        gbc2.gridy++;        gbc2.insets.bottom = 0;        movePanel.add(moveDownButton, gbc2);        gbc.gridx++;        gbc.gridy = 0;        gbc.weighty = 1.0;        gbc.weightx = 0;        gbc.anchor = GridBagConstraints.CENTER;        gbc.gridheight = GridBagConstraints.REMAINDER;        gbc.fill = GridBagConstraints.NONE;        panel.add(movePanel, gbc);                addContent(panel);    }        private void setTableProperties() {        table.setTableHeader(null);        table.setColumnSelectionAllowed(false);        table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);        table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        table.setIntercellSpacing(new Dimension(0,0));        table.setShowGrid(false);        table.setRowHeight(27);        table.doLayout();                TableColumnModel tcm = table.getColumnModel();        tcm.getColumn(0).setPreferredWidth(30);                TableColumn col = tcm.getColumn(1);        col.setPreferredWidth(40);        col.setCellRenderer(iconRenderer);                col = tcm.getColumn(2);        col.setPreferredWidth(251);        col.setCellRenderer(nameRenderer);    }        private void setInitialValues() {        Collections.sort(selections, new ButtonComparator());    }        public void restoreDefaults() {        ToolBarWrapper _toolBar = ToolBarProperties.getDefaultToolBar(toolBarName);        toolBar = (ToolBarWrapper)_toolBar.clone();                selections = toolBar.getButtonsVector();        Collections.sort(selections, new ButtonComparator());        toolButtonModel.fireTableRowsUpdated(0, selections.size()-1);    }        public void save() {        int size = selections.size();        Vector buttons = new Vector(selections.size());                // update the buttons        for (int i = 0; i < size; i++) {            ToolBarButton tb = (ToolBarButton)selections.elementAt(i);                        if (tb.isVisible())                tb.setOrder(i);            else                tb.setOrder(1000);                        buttons.add(tb);                    }                toolBar.setButtonsVector(buttons);        ToolBarProperties.resetToolBar(toolBarName, toolBar);    }        public void addSeparator(ActionEvent e) {        int selection = table.getSelectedRow();        if (selection == -1) {            return;        }        ToolBarButton tb = new ToolBarButton(ToolBarButton.SEPARATOR_ID);        tb.setOrder(selection);        tb.setVisible(true);        selections.insertElementAt(tb, selection);        toolButtonModel.fireTableRowsInserted(selection == 0 ? 0 : selection - 1,                                                selection == 0 ? 1 : selection);    }    public void removeSeparator(ActionEvent e) {        int selection = table.getSelectedRow();        if (selection == -1) {            return;        }        ToolBarButton remove = (ToolBarButton)selections.elementAt(selection);        if (!remove.isSeparator()) {            return;        }        selections.removeElementAt(selection);        toolButtonModel.fireTableRowsDeleted(selection, selection);    }    public void moveUp(ActionEvent e) {        int selection = table.getSelectedRow();                if (selection <= 0) {            return;        }        int newPostn = selection - 1;        ToolBarButton move = (ToolBarButton)selections.elementAt(selection);        selections.removeElementAt(selection);        selections.add(newPostn, move);        table.setRowSelectionInterval(newPostn, newPostn);        toolButtonModel.fireTableRowsUpdated(newPostn, selection);    }        public void moveDown(ActionEvent e) {        int selection = table.getSelectedRow();        if (selection == -1 || selection == selections.size() - 1) {            return;        }        int newPostn = selection + 1;        ToolBarButton move = (ToolBarButton)selections.elementAt(selection);        selections.removeElementAt(selection);        selections.add(newPostn, move);        table.setRowSelectionInterval(newPostn, newPostn);        toolButtonModel.fireTableRowsUpdated(selection, newPostn);    }        private class ToolBarButtonModel extends AbstractTableModel {                public ToolBarButtonModel() {}                public int getColumnCount() {            return 3;        }                public int getRowCount() {            return selections.size();        }                public Object getValueAt(int row, int col) {            ToolBarButton tbb = (ToolBarButton)selections.elementAt(row);                        switch(col) {                case 0:                    return new Boolean(tbb.isVisible());                case 1:                    return tbb.getIcon();                case 2:                    return tbb.getName();                default:                    return null;            }        }                public void setValueAt(Object value, int row, int col) {            ToolBarButton tbb = (ToolBarButton)selections.elementAt(row);                        if (col == 0)                tbb.setVisible(((Boolean)value).booleanValue());                        fireTableRowsUpdated(row, row);        }                public boolean isCellEditable(int row, int col) {            if (col == 0)                return true;            else                return false;        }                public Class getColumnClass(int col) {            if (col == 0)                return Boolean.class;            else                return String.class;        }                public void addNewRow() {                    }            } // CreateTableModel        public class NameCellRenderer extends JLabel                                  implements TableCellRenderer {                public NameCellRenderer() {            //setFont(panelFont);            setOpaque(true);        }                public Component getTableCellRendererComponent(JTable table,                                                       Object value,                                                        boolean isSelected,                                                        boolean hasFocus,                                                       int row,                                                       int column) {            setBackground(isSelected ? table.getSelectionBackground() :                table.getBackground());                        setForeground(isSelected ? table.getSelectionForeground() :                table.getForeground());                        setText(value.toString());            setBorder(null);                        return this;        }            } // class NameCellRenderer            public class IconCellRenderer extends JLabel                                  implements TableCellRenderer {                public IconCellRenderer() {            setOpaque(true);        }                public Component getTableCellRendererComponent(JTable table,        Object value, boolean isSelected, boolean hasFocus,        int row, int column) {                        setBackground(isSelected ? table.getSelectionBackground() :                table.getBackground());                        setForeground(isSelected ? table.getSelectionForeground() :                table.getForeground());                        setHorizontalAlignment(JLabel.CENTER);                        setIcon((ImageIcon)value);                        return this;        }            } // class IconCellRenderer    }

⌨️ 快捷键说明

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