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

📄 basescriptgeneratorpanel.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
字号:
/* * BaseScriptGeneratorPanel.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.scriptgenerators;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.*;import java.util.Vector;import javax.swing.*;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFileChooser;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import org.executequery.GUIUtilities;import org.underworldlabs.swing.ComponentTitledPanel;import org.underworldlabs.swing.DynamicComboBoxModel;import org.executequery.components.FileChooserDialog;import org.executequery.databasemediators.DatabaseConnection;import org.executequery.databasemediators.MetaDataValues;import org.executequery.datasource.ConnectionManager;import org.underworldlabs.jdbc.DataSourceException;import org.underworldlabs.swing.ListSelectionPanel;import org.underworldlabs.swing.FileSelector;/* ---------------------------------------------------------- * 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.4 $ * @date     $Date: 2006/06/07 15:03:37 $ */public class BaseScriptGeneratorPanel extends JPanel                                      implements ActionListener,                                                 ItemListener {        public static final String TITLE = "Generate SQL Scripts";    public static final String FRAME_ICON = "CreateScripts16.gif";        /** The schema combo box */    protected JComboBox schemaCombo;        /** the schema combo box model */    protected DynamicComboBoxModel schemaModel;        /** The connection combo selection */    protected JComboBox connectionsCombo;     /** the schema combo box model */    protected DynamicComboBoxModel connectionsModel;    protected boolean useCatalogs;    protected ListSelectionPanel listPanel;        protected MetaDataValues metaData;        protected JButton browseButton;    protected JTextField pathField;    protected JCheckBox constraintsCheck;    protected JCheckBox consAsAlterCheck;    protected JCheckBox consInCreateCheck;        protected Vector tables;    /** the database connection object */    protected DatabaseConnection databaseConnection;        public BaseScriptGeneratorPanel() {        super(new BorderLayout());                try {            jbInit();        } catch(Exception e) {            e.printStackTrace();        }             }        public BaseScriptGeneratorPanel(Vector tables) {        super(new BorderLayout());                this.tables = tables;                try {            jbInit();        } catch(Exception e) {            e.printStackTrace();        }             }        private void jbInit() throws Exception {        metaData = new MetaDataValues(true);                listPanel = new ListSelectionPanel("Available Tables:",                                            "Selected Tables:");        // combo boxes        connectionsCombo = new JComboBox();        schemaCombo = new JComboBox();        if (tables != null) {            schemaCombo.setEnabled(false);            connectionsCombo.setEnabled(false);            listPanel.createAvailableList(tables);        }         else {             // retrieve selection lists            Vector connections = ConnectionManager.getActiveConnections();            connectionsModel = new DynamicComboBoxModel(connections);            connectionsCombo.setModel(connectionsModel);            connectionsCombo.addItemListener(this);                        schemaModel = new DynamicComboBoxModel();            schemaCombo.setModel(schemaModel);            schemaCombo.addItemListener(this);                        // check initial values for possible value inits            if (connections == null || connections.isEmpty()) {                schemaCombo.setEnabled(false);                connectionsCombo.setEnabled(false);            } else {                DatabaseConnection connection =                         (DatabaseConnection)connections.elementAt(0);                metaData.setDatabaseConnection(connection);                                Vector schemas = metaData.getHostedSchemasVector();                if (schemas == null || schemas.isEmpty()) {                    useCatalogs = true;                    schemas = metaData.getHostedCatalogsVector();                }                schemaModel.setElements(schemas);                schemaCombo.setSelectedIndex(0);                createTablesList();            }        }                pathField = new JTextField();        browseButton = new JButton("Browse");        browseButton.setMargin(new Insets(2, 2, 2, 2));        browseButton.setMnemonic('B');        Dimension btnDim = new Dimension(75,25);        browseButton.setPreferredSize(btnDim);                constraintsCheck = new JCheckBox("Include constraints");        consAsAlterCheck = new JCheckBox("As ALTER TABLE statements", true);        consInCreateCheck = new JCheckBox("Within CREATE TABLE statements");        constraintsCheck.addItemListener(new ItemListener() {            public void itemStateChanged(ItemEvent e) {                enableConstraintChecks(e.getStateChange() == ItemEvent.SELECTED);            }        });                ButtonGroup bg = new ButtonGroup();        bg.add(consAsAlterCheck);        bg.add(consInCreateCheck);                consInCreateCheck.setEnabled(false);        consAsAlterCheck.setEnabled(false);                browseButton.addActionListener(this);        JPanel mainPanel = new JPanel(new GridBagLayout());        mainPanel.setBorder(BorderFactory.createEtchedBorder());                ComponentTitledPanel optionsPanel = new ComponentTitledPanel(constraintsCheck);        JPanel _panel = optionsPanel.getContentPane();        _panel.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 5));        _panel.add(consAsAlterCheck);        _panel.add(consInCreateCheck);                GridBagConstraints gbc = new GridBagConstraints();        gbc.gridx++;        gbc.gridy++;        gbc.insets = new Insets(7,5,0,5);        gbc.anchor = GridBagConstraints.NORTHWEST;        mainPanel.add(new JLabel("Connection:"), gbc);        gbc.gridx = 1;        gbc.insets.left = 0;        gbc.insets.top = 5;        gbc.gridx = 1;        gbc.weightx = 1.0;        gbc.gridwidth = 3;        gbc.fill = GridBagConstraints.HORIZONTAL;        mainPanel.add(connectionsCombo, gbc);        gbc.gridy++;        gbc.gridx = 0;        gbc.insets.left = 5;        gbc.weightx = 0;        gbc.gridwidth = 1;        gbc.fill = GridBagConstraints.NONE;        mainPanel.add(new JLabel(useCatalogs ? "Catalog:" : "Schema:"), gbc);        gbc.insets.top = 3;        gbc.insets.left = 0;        gbc.gridx = 1;        gbc.weightx = 1.0;        gbc.gridwidth = 3;        gbc.fill = GridBagConstraints.HORIZONTAL;        mainPanel.add(schemaCombo, gbc);        gbc.gridx = 0;        gbc.gridwidth = 3;        gbc.gridy++;        gbc.insets.top = 10;        gbc.insets.left = 5;        gbc.insets.bottom = 10;        gbc.insets.right = 5;        gbc.fill = GridBagConstraints.BOTH;        mainPanel.add(listPanel, gbc);        gbc.gridwidth = 1;        gbc.gridy++;        gbc.insets.top = 10;        gbc.weightx = 0;        gbc.insets.right = 0;        gbc.insets.left = 5;        gbc.insets.bottom = 5;        gbc.fill = GridBagConstraints.NONE;        mainPanel.add(new JLabel("Save Path:"), gbc);        gbc.gridx = 1;        gbc.weightx = 1.0;        gbc.fill = GridBagConstraints.HORIZONTAL;        mainPanel.add(pathField, gbc);        gbc.fill = GridBagConstraints.NONE;        gbc.gridx = 2;        gbc.weightx = 0;        gbc.insets.top = 3;        gbc.insets.right = 5;        mainPanel.add(browseButton, gbc);        gbc.gridx = 0;        gbc.gridy++;        gbc.gridwidth = 3;        gbc.weightx = 1.0;        gbc.insets.top = 0;        gbc.insets.bottom = 5;        gbc.fill = GridBagConstraints.HORIZONTAL;        mainPanel.add(optionsPanel, gbc);                JPanel base = new JPanel(new GridBagLayout());        base.add(mainPanel, new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,                                                   GridBagConstraints.SOUTHEAST,                                                    GridBagConstraints.BOTH,                                                   new Insets(5, 5, 0, 5), 0, 0));                add(base, BorderLayout.CENTER);    }        /**     * Invoked when an item has been selected or deselected by the user.     * The code written for this method performs the operations     * that need to occur when an item is selected (or deselected).     */        public void itemStateChanged(ItemEvent event) {        // interested in selections only        if (event.getStateChange() == ItemEvent.DESELECTED) {            return;        }        Object source = event.getSource();        if (source == connectionsCombo) {            try {                // retrieve connection selection                DatabaseConnection connection =                         (DatabaseConnection)connectionsCombo.getSelectedItem();                // reset meta data                metaData.setDatabaseConnection(connection);                // reset schema values                Vector schemas = metaData.getHostedSchemasVector();                if (schemas == null || schemas.isEmpty()) {                    useCatalogs = true;                    schemas = metaData.getHostedCatalogsVector();                }                schemaModel.setElements(schemas);                schemaCombo.setSelectedIndex(0);                schemaCombo.setEnabled(true);                createTablesList();            }            catch (DataSourceException e) {                GUIUtilities.displayExceptionErrorDialog(                        "Error retrieving the catalog/schema names for " +                        "the current connection.\n\nThe system returned:\n" +                         e.getExtendedMessage(), e);            }        }        else if (source == schemaCombo) {            createTablesList();        }    }    private void createTablesList() {        try {            String catalogName = null;            String schemaName = null;            Object value = schemaCombo.getSelectedItem();            if (value != null) {                if (useCatalogs) {                    catalogName = value.toString();                } else {                                        schemaName = value.toString();                }            }            listPanel.createAvailableList(metaData.getTables(                                            catalogName,                                            schemaName,                                            "TABLE"));        }         catch (DataSourceException e) {            GUIUtilities.displayExceptionErrorDialog(                    "Error retrieving the table names for the " +                    "selected catalog/schema.\n\nThe system returned:\n" +                     e.getExtendedMessage(), e);        }    }        public void actionPerformed(ActionEvent e) {        browseButton_actionPerformed();    }        private void enableConstraintChecks(boolean enable) {        consAsAlterCheck.setEnabled(enable);        consInCreateCheck.setEnabled(enable);    }        protected boolean hasRequiredFields() {                if (!listPanel.hasSelections()) {            GUIUtilities.displayErrorMessage("You must select at least one table.");            return false;        }                 if (pathField.getText().length() == 0) {            GUIUtilities.displayErrorMessage("You must select a file.");            return false;        }                 return true;            }        private void browseButton_actionPerformed() {        FileSelector textFiles = new FileSelector(new String[] {"txt"}, "Text files");        FileSelector sqlFiles = new FileSelector(new String[] {"sql"}, "SQL files");                FileChooserDialog fileChooser = new FileChooserDialog();        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);        fileChooser.addChoosableFileFilter(textFiles);        fileChooser.addChoosableFileFilter(sqlFiles);                fileChooser.setDialogTitle("Select File...");        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);        fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);                int result = fileChooser.showDialog(GUIUtilities.getParentFrame(), "Select");                if (result == JFileChooser.CANCEL_OPTION) {            return;        }                pathField.setText(fileChooser.getSelectedFile().getAbsolutePath());    }    }

⌨️ 快捷键说明

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