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

📄 resultsetpanel.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * ResultSetPanel.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.editor;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Point;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.StringSelection;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.print.Printable;import java.sql.SQLException;import java.util.Enumeration;import java.util.Vector;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.event.TableModelEvent;import javax.swing.event.TableModelListener;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import javax.swing.table.TableColumnModel;import javax.swing.table.TableModel;import org.underworldlabs.util.SystemProperties;import org.underworldlabs.swing.table.RowNumberHeader;import org.underworldlabs.swing.table.TableSorter;import org.executequery.print.PrintUtilities;import org.executequery.print.TablePrinter;/* ---------------------------------------------------------- * CVS NOTE: Changes to the CVS repository prior to the  *           release of version 3.0.0beta1 has meant a  *           resetting of CVS revision numbers. * ---------------------------------------------------------- *//** * Simple SQL result set display panel. * * @author   Takis Diakoumis * @version  $Revision: 1.5 $ * @date     $Date: 2006/07/15 16:36:32 $ */public class ResultSetPanel extends JPanel {        /** the table display */    private QueryEditorResultsTable table;        /** the table model */    private ResultSetTableModel model;        /** the table scroll pane */    private JScrollPane scroller;        /** the table sorter */    private TableSorter sorter;        /** whether a result set exists in this view */    private boolean hasResultSet;        /** whether to displaay the row header */    private boolean showRowHeader;        /** the table display default column width */    private int columnWidth;        /** the associated meta data panel */    private ResultSetMetaDataPanel metaDataPanel;        /** table pop-up menu */    private PopMenu popupMenu;        /** the row number header */    private RowNumberHeader rowNumberHeader;        /** Creates a new instance of ResultSetPanel */    public ResultSetPanel() {        super(new BorderLayout());        init();    }        private void init() {        Color bg = SystemProperties.getColourProperty("user",                "editor.results.background.colour");        table = new QueryEditorResultsTable();                // this is set for the bg of any remaining         // header region outside the cells themselves        table.getTableHeader().setBackground(bg);                scroller = new JScrollPane(table,                                   JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,                                   JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);        scroller.setBackground(bg);        scroller.setBorder(null);        scroller.getViewport().setBackground(bg);        add(scroller, BorderLayout.CENTER);        setTableProperties();                table.addMouseListener(new MouseHandler());    }    /**     * Sets the results background to that specified.     *     * @param the colour to set     */    public void setResultBackground(Color c) {        scroller.setBackground(c);        scroller.getViewport().setBackground(c);        if (table != null) {            table.getTableHeader().setBackground(c);        }    }    public void destroyTable() {        table = null;        if (popupMenu != null) {            popupMenu.removeAll();        }        popupMenu = null;    }    public void interrupt() {        if (model != null) {            model.interrupt();        }    }        public int setResultSet(ResultSetTableModel model, boolean showRowNumber)        throws SQLException {        this.model = model;        int rowCount = model.getRowCount();        if (rowCount > 0) {            buildTable(rowCount);                    }        return rowCount;    }    /**     * Builds the result set table display.     *     * @param the row count     */    private void buildTable(int rowCount) throws SQLException {        boolean sorterWasNull = false;                if (sorter == null) {            sorterWasNull = true;            sorter = new TableSorter(model);        }        else {            sorter.setTableModel(model);        }                if (table == null) {            table = new QueryEditorResultsTable(sorter);            scroller.getViewport().add(table);        }        else {            table.setModel(sorter);        }                // reset the table header        if (sorterWasNull) {            sorter.setTableHeader(table.getTableHeader());        }                setTableColumnWidth();        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);        hasResultSet = true;        if (showRowHeader) {            addRowNumberHeader();        }    }    protected void tableDataChanged() {        if (showRowHeader) {            addRowNumberHeader();        }            }        private void addRowNumberHeader() {        boolean needRepaint = false;        if (rowNumberHeader == null) {            rowNumberHeader = new RowNumberHeader(table);            rowNumberHeader.setBackground(SystemProperties.getColourProperty(                                "user", "editor.results.background.colour"));        }        else {            rowNumberHeader.setTable(table);        }        scroller.setRowHeaderView(rowNumberHeader);    }        /**     * Sets the user defined (preferences) table properties.     */    public void setTableProperties() {        table.setDragEnabled(true);        table.setCellSelectionEnabled(true);        table.setBackground(            SystemProperties.getColourProperty("user", "results.table.cell.background.colour"));                table.setRowHeight(            SystemProperties.getIntProperty("user", "results.table.column.height"));                table.setRowSelectionAllowed(            SystemProperties.getBooleanProperty("user", "results.table.row.select"));                table.getTableHeader().setResizingAllowed(            SystemProperties.getBooleanProperty("user", "results.table.column.resize"));        table.getTableHeader().setReorderingAllowed(            SystemProperties.getBooleanProperty("user", "results.table.column.reorder"));                showRowHeader = SystemProperties.getBooleanProperty("user", "results.table.row.numbers");        if (showRowHeader) {            addRowNumberHeader();        } else {            if (rowNumberHeader != null) {                 // remove the row header if its there now                scroller.setRowHeaderView(null);            }            rowNumberHeader = null;        }                columnWidth = SystemProperties.getIntProperty("user", "results.table.column.width");        setTableColumnWidth();                if (model != null) {            model.setHoldMetaData(SystemProperties.getBooleanProperty(                                            "user", "editor.results.metadata"));        }    }        /**     * Sets the table column width.     */    private void setTableColumnWidth() {        TableColumnModel tcm = table.getColumnModel();                if (columnWidth != 75) {            TableColumn col = null;            for (Enumeration i = tcm.getColumns(); i.hasMoreElements();) {                col = (TableColumn)i.nextElement();                col.setPreferredWidth(columnWidth);            }        }    }

⌨️ 快捷键说明

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