[Isql-devevelopment] SF.net SVN: isql: [85] isql-swing/branches/3.1.0-development
Brought to you by:
mkobold
From: <mk...@us...> - 2007-08-08 01:14:18
|
Revision: 85 http://isql.svn.sourceforge.net/isql/?rev=85&view=rev Author: mkobold Date: 2007-08-07 18:14:18 -0700 (Tue, 07 Aug 2007) Log Message: ----------- * merged with the 3.0.2 Modified Paths: -------------- isql-swing/branches/3.1.0-development/src/org/isqlviewer/model/JdbcSchemaTreeModel.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/swing/EnhancedTable.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/DataGrid.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/JdbcWorkbench.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/ResourceBundle.properties isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandEditor.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandMouseAdapter.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/TabbedResultsetRenderer.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/SchemaNodeRenderer.java isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/TextComponentDropTarget.java Property Changed: ---------------- isql-swing/branches/3.1.0-development/ Property changes on: isql-swing/branches/3.1.0-development ___________________________________________________________________ Name: svn:ignore - bin classes + bin classes isql-swing.jar isql-swing-src.zip Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/model/JdbcSchemaTreeModel.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/model/JdbcSchemaTreeModel.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/model/JdbcSchemaTreeModel.java 2007-08-08 01:14:18 UTC (rev 85) @@ -27,11 +27,15 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; +import java.text.MessageFormat; +import java.util.Arrays; import java.util.Collection; import java.util.TreeSet; import javax.swing.tree.DefaultTreeModel; +import org.apache.log4j.Logger; +import org.isqlviewer.util.IsqlToolkit; import org.isqlviewer.util.LocalMessages; /** @@ -47,6 +51,8 @@ private static final String RESOURCE_BUNDLE = "org.isqlviewer.model.ResourceBundle"; private static final LocalMessages messages = new LocalMessages(RESOURCE_BUNDLE); + private Logger logger = IsqlToolkit.getApplicationLogger(); + private DatabaseMetaData jdbcMetadata = null; private String catalog = null; private String schema = null; @@ -236,6 +242,7 @@ protected void initializeDefaultNodes(boolean showDataTypes, boolean showTableTypes, boolean showStoredProcedures) { String nodeText = null; + if (showDataTypes) { SchemaNode schemaNode = null; @@ -271,7 +278,7 @@ tableTypes.add(resultSet.getString("TABLE_TYPE")); } } catch (SQLException sqle) { - // TODO Do Something here... + logger.debug("DatabaseMetadata.getTableTypes();", sqle); } finally { if (resultSet != null) { try { @@ -292,6 +299,12 @@ insertNodeInto(tabletypeNode, rootNode, 0); } } catch (SQLException sqle) { + Object[] arguments = new Object[3]; + arguments[0] = catalog; + arguments[1] = schema; + arguments[2] = Arrays.toString(typeSet); + String message = MessageFormat.format("DatabaseMetadata.getTables({0}, {1}, null, {2})", arguments); + logger.debug(message, sqle); } finally { if (resultSet != null) { try { @@ -319,6 +332,11 @@ SchemaNode procedureNode = new SchemaNode(nodeText, false, SchemaNodeType.PROCEDURE_SET); procedureNode.setHasError(true); insertNodeInto(procedureNode, rootNode, 0); + Object[] arguments = new Object[2]; + arguments[0] = catalog; + arguments[1] = schema; + String message = MessageFormat.format("DatabaseMetadata.getProcedures({0}, {1}, null)", arguments); + logger.debug(message, sqle); } finally { if (resultSet != null) { try { @@ -351,6 +369,12 @@ } } catch (SQLException sqle) { tabletypeNode.setHasError(true); + Object[] arguments = new Object[3]; + arguments[0] = catalog; + arguments[1] = schema; + arguments[2] = tableType; + String message = MessageFormat.format("DatabaseMetadata.getTables({0}, {1}, null, {2})", arguments); + logger.debug(message, sqle); } finally { if (resultSet != null) { try { @@ -375,6 +399,7 @@ insertNodeInto(tableNode, typesetNode, 0); } } catch (SQLException sqle) { + logger.debug("DatabaseMetadata.getTypeInfo()", sqle); typesetNode.setHasError(true); } finally { if (resultSet != null) { @@ -400,6 +425,12 @@ insertNodeInto(tableNode, usertypesetNode, 0); } } catch (SQLException sqle) { + Object[] arguments = new Object[3]; + arguments[0] = catalog; + arguments[1] = schema; + arguments[2] = type; + String message = MessageFormat.format("DatabaseMetadata.getUDT({0}, {1}, null, {2})", arguments); + logger.debug(message, sqle); usertypesetNode.setHasError(true); } finally { if (resultSet != null) { @@ -425,6 +456,11 @@ insertNodeInto(tableNode, procedureNode, 0); } } catch (SQLException sqle) { + Object[] arguments = new Object[2]; + arguments[0] = catalog; + arguments[1] = schema; + String message = MessageFormat.format("DatabaseMetadata.getProcedures({0}, {1}, null)", arguments); + logger.debug(message, sqle); procedureNode.setHasError(true); } finally { if (resultSet != null) { @@ -637,6 +673,12 @@ insertNodeInto(columnNameNode, columnNode, 0); } } catch (SQLException sqle) { + Object[] arguments = new Object[3]; + arguments[0] = catalog; + arguments[1] = schema; + arguments[2] = tableName; + String message = MessageFormat.format("DatabaseMetadata.getColumns({0}, {1}, {2}, null)", arguments); + logger.debug(message, sqle); columnNode.setHasError(true); } finally { if (resultSet != null) { @@ -648,4 +690,4 @@ reload(columnNode); } } -} +} \ No newline at end of file Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/swing/EnhancedTable.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/swing/EnhancedTable.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/swing/EnhancedTable.java 2007-08-08 01:14:18 UTC (rev 85) @@ -58,6 +58,7 @@ import javax.swing.JComponent; import javax.swing.JPopupMenu; import javax.swing.JTable; +import javax.swing.JToolTip; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.UIDefaults; @@ -97,6 +98,7 @@ protected boolean selectionToggle = true; protected DnDSupport dndHandler = new DnDSupport(this); protected DragGestureRecognizer dndRecognizer = null; + protected JToolTip customToolTip = null; public EnhancedTable(TableModel model) { @@ -125,24 +127,6 @@ setGridColor(EnhancedTableCellRenderer.gridColor); } - @Override - protected void createDefaultRenderers() { - - defaultRenderersByColumnClass = new UIDefaults(); - - // Numbers - setLazyRenderer(Number.class, "org.isqlviewer.ui.laf.EnhancedNumberCellRenderer"); - // Doubles and Floats - setLazyRenderer(Float.class, "org.isqlviewer.ui.laf.EnhancedDecimalCellRenderer"); - setLazyRenderer(Double.class, "org.isqlviewer.ui.laf.EnhancedDecimalCellRendererr"); - // Dates - setLazyRenderer(Date.class, "org.isqlviewer.ui.laf.EnhancedDateCellRenderer"); - // Booleans - setLazyRenderer(Boolean.class, "org.isqlviewer.ui.laf.EnhancedBooleanCellRenderer"); - // Everything else - setLazyRenderer(Object.class, "org.isqlviewer.ui.laf.EnhancedTableCellRenderer"); - } - public void refreshSorted() { Sortable mdl = null; @@ -160,6 +144,11 @@ } } + public void setCustomTooltip(JToolTip customToolTip) { + + this.customToolTip = customToolTip; + } + public EnhancedTableModel getSelectedSubModel() { int[] rows = null; @@ -306,6 +295,15 @@ } @Override + public JToolTip createToolTip() { + + if (customToolTip == null) { + return super.createToolTip(); + } + return customToolTip; + } + + @Override public boolean getDragEnabled() { return (dndRecognizer == null); @@ -346,6 +344,24 @@ super.columnAdded(event); } + @Override + protected void createDefaultRenderers() { + + defaultRenderersByColumnClass = new UIDefaults(); + + // Numbers + setLazyRenderer(Number.class, "org.isqlviewer.ui.laf.EnhancedNumberCellRenderer"); + // Doubles and Floats + setLazyRenderer(Float.class, "org.isqlviewer.ui.laf.EnhancedDecimalCellRenderer"); + setLazyRenderer(Double.class, "org.isqlviewer.ui.laf.EnhancedDecimalCellRendererr"); + // Dates + setLazyRenderer(Date.class, "org.isqlviewer.ui.laf.EnhancedDateCellRenderer"); + // Booleans + setLazyRenderer(Boolean.class, "org.isqlviewer.ui.laf.EnhancedBooleanCellRenderer"); + // Everything else + setLazyRenderer(Object.class, "org.isqlviewer.ui.laf.EnhancedTableCellRenderer"); + } + /** Sizes the columns with the max size of the header and the columns data. */ private void setColumnSizes(int from, int to) { Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/DataGrid.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/DataGrid.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/DataGrid.java 2007-08-08 01:14:18 UTC (rev 85) @@ -22,190 +22,177 @@ */ package org.isqlviewer.ui; -import java.awt.Component; +import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.text.NumberFormat; +import java.text.MessageFormat; import java.util.prefs.Preferences; import javax.swing.BorderFactory; import javax.swing.Box; -import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JMenuBar; +import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; -import javax.swing.ScrollPaneConstants; -import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import org.isqlviewer.history.HistoricalCommand; +import org.isqlviewer.sql.QueryMetadata; import org.isqlviewer.swing.EnhancedTable; import org.isqlviewer.swing.SwingUtilities; import org.isqlviewer.swing.action.SwingEventManager; import org.isqlviewer.swing.table.EnhancedTableModel; -import org.isqlviewer.swing.table.ResultSetTableModel; -import org.isqlviewer.ui.laf.SortableHeaderRenderer; import org.isqlviewer.util.LocalMessages; +import org.isqlviewer.util.StringUtilities; /** * @author Mark A. Kobold <mkobold at isqlviewer dot com> * @version 1.0 */ -public class DataGrid extends AbstractApplicationView implements ListSelectionListener, ActionListener, - DocumentListener { +public class DataGrid extends AbstractApplicationView implements ListSelectionListener, DocumentListener { - private NumberFormat nf = NumberFormat.getIntegerInstance(); + private static final MessageFormat cursorFormat = new MessageFormat("{0}/{1}"); + private LocalMessages messages = new LocalMessages("org.isqlviewer.ui.ResourceBundle"); + private EnhancedTable table = null; - private JTextField txtFilter = new JTextField(); + private EnhancedTableModel model = null; + private HistoricalCommand queryReference = null; + private JLabel lblFilter = new JLabel(); - private JScrollPane jspTable = null; - private Component glue = Box.createHorizontalGlue(); - private JLabel lblLocatr = new JLabel(); - private JLabel lblSearch = new JLabel(SwingUtilities.loadIconResource("search", 16)); - private JButton btnHider = new JButton(); - private JButton actionPageUp = new JButton(""); - private JButton actionPageDown = new JButton(""); - private LocalMessages messages = new LocalMessages("org.isqlviewer.ui.ResourceBundle"); + private JLabel cursorLabel = new JLabel(SwingUtilities.loadIconResource("table", 16)); + private JLabel serviceLabel = new JLabel(SwingUtilities.loadIconResource("service", 16)); + private JLabel timeLabel = new JLabel(SwingUtilities.loadIconResource("history", 16)); + private JTextField searchText = new JTextField(8); + public void configureMenubar(JMenuBar menuBar) { - // TODO Auto-generated method stub - } public void disposeView(Preferences preferences) { - // TODO Auto-generated method stub - } public void initializeView() { - // TODO Auto-generated method stub - } public void doLayout(JComponent parentComponent, Preferences preferences, SwingEventManager eventManager) { table = new EnhancedTable(); - // TODO table.setDropTarget(new DropTarget(table, workbench.bookmarkDropper)); - table.setFont(table.getFont().deriveFont(10f)); - // table.putClientProperty(EnhancedTable.CLIENT_JPOPUP_MENU, workbench.tablePopupMenu); table.setDragEnabled(true); table.getSelectionModel().addListSelectionListener(this); - jspTable = new JScrollPane(table); - lblLocatr.setBorder(BorderFactory.createEtchedBorder()); - btnHider.setIcon(new SortableHeaderRenderer.BasicArrowIcon(SwingConstants.NORTH, 4)); - btnHider.setBorderPainted(false); - btnHider.setFocusPainted(false); - btnHider.addActionListener(this); - // btnHider.setToolTipText(BasicUtilities.getString("Filter_Hide_Tip")); - actionPageUp.addActionListener(this); - actionPageUp.setBorderPainted(false); - actionPageUp.setFocusPainted(false); - // actionPageUp.setToolTipText(BasicUtilities.getString("View_Prev")); - actionPageDown.addActionListener(this); - actionPageDown.setBorderPainted(false); - actionPageDown.setFocusPainted(false); - // actionPageDown.setToolTipText(BasicUtilities.getString("View_Next")); - // txtFilter.setToolTipText(BasicUtilities.getString("Filter_Input_Tip")); - txtFilter.getDocument().addDocumentListener(this); - lblFilter.setFont(lblFilter.getFont().deriveFont(9.0f)); + searchText.getDocument().addDocumentListener(this); + cursorLabel.setBorder(BorderFactory.createEtchedBorder()); + cursorLabel.setToolTipText(messages.format("DataGrid.current_position_of_selection")); + timeLabel.setBorder(BorderFactory.createEtchedBorder()); + timeLabel.setToolTipText(messages.format("DataGrid.time_spent_aquiring_these_results")); + serviceLabel.setBorder(BorderFactory.createEtchedBorder()); + serviceLabel.setToolTipText(messages.format("DataGrid.service_these_results_came_from")); + + JScrollPane dataScrollPanel = new JScrollPane(table); Object UI_CONSTRAINT = null; - parentComponent.setLayout(new GridBagLayout()); + JPanel searchBar = new JPanel(new GridBagLayout()); UI_CONSTRAINT = constrain(0, 0, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); - parentComponent.add(glue, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL); - parentComponent.add(lblSearch, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(2, 0, 1, 1, 0.35, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL); - parentComponent.add(txtFilter, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE); - parentComponent.add(btnHider, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(2, 1, 2, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE); - parentComponent.add(lblFilter, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(0, 2, 4, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH); - parentComponent.add(jspTable, UI_CONSTRAINT); - UI_CONSTRAINT = constrain(1, 3, 4, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE); - parentComponent.add(lblLocatr, UI_CONSTRAINT); + searchBar.add(Box.createHorizontalGlue(), UI_CONSTRAINT); + UI_CONSTRAINT = constrain(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); + JLabel searchLabel = new JLabel(SwingUtilities.loadIconResource("search", 16)); + searchBar.add(searchLabel, UI_CONSTRAINT); + UI_CONSTRAINT = constrain(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); + searchBar.add(searchText, UI_CONSTRAINT); + UI_CONSTRAINT = constrain(3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); + searchBar.add(Box.createHorizontalStrut(10), UI_CONSTRAINT); + UI_CONSTRAINT = constrain(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE); + searchBar.add(lblFilter, UI_CONSTRAINT); + UI_CONSTRAINT = constrain(3, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); + searchBar.add(Box.createHorizontalStrut(10), UI_CONSTRAINT); + + JPanel statusBar = new JPanel(new GridBagLayout()); + UI_CONSTRAINT = constrain(3, 0, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL); + statusBar.add(Box.createHorizontalGlue(), UI_CONSTRAINT); + UI_CONSTRAINT = constrain(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE); + statusBar.add(timeLabel, UI_CONSTRAINT); + UI_CONSTRAINT = constrain(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE); + statusBar.add(serviceLabel, UI_CONSTRAINT); + UI_CONSTRAINT = constrain(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE); + statusBar.add(cursorLabel, UI_CONSTRAINT); + + parentComponent.setLayout(new BorderLayout()); + parentComponent.add(searchBar, BorderLayout.NORTH); + parentComponent.add(dataScrollPanel, BorderLayout.CENTER); + parentComponent.add(statusBar, BorderLayout.SOUTH); } - public void setModel(EnhancedTableModel model) { + public void changedUpdate(DocumentEvent e) { - table.setModel(model); - if (model.getTrueRowCount() >= 1) { - table.setRowSelectionInterval(0, 0); - } + } - if (model.getPageCount() > 1) { - jspTable.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - jspTable.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); - jspTable.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, actionPageUp); - jspTable.setCorner(ScrollPaneConstants.LOWER_RIGHT_CORNER, actionPageDown); - } else { - jspTable.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jspTable.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jspTable.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, Box.createHorizontalStrut(0)); - jspTable.setCorner(ScrollPaneConstants.LOWER_RIGHT_CORNER, Box.createHorizontalStrut(0)); + public void insertUpdate(DocumentEvent e) { + + doFiltering(); + } + + public void removeUpdate(DocumentEvent e) { + + doFiltering(); + } + + public void valueChanged(ListSelectionEvent e) { + + Object[] arguments = new Object[2]; + arguments[0] = Integer.toString(table.getSelectedRow() + 1); + arguments[1] = Integer.toString(table.getRowCount()); + synchronized (cursorLabel) { + cursorLabel.setText(cursorFormat.format(arguments)); } } - public EnhancedTable getTable() { + public void setMetadata(QueryMetadata metadata) { - return table; + this.queryReference = metadata.getCommand(); + serviceLabel.setText(metadata.getService()); + timeLabel.setText(StringUtilities.getHumanReadableTime(metadata.getUserTime())); } - public void clearFiltering() { + public void setModel(EnhancedTableModel model) { - if (table != null) { - ResultSetTableModel model = (ResultSetTableModel) table.getModel(); - model.clearFilter(); + this.model = model; + table.setModel(model); + if (model.getTrueRowCount() >= 1) { + table.setRowSelectionInterval(0, 0); } - txtFilter.setText(null); - lblFilter.setText(null); } - /* - * (non-Javadoc) - * - * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent) - */ - public void changedUpdate(DocumentEvent e) { + public EnhancedTable getTable() { + return table; } - /* - * (non-Javadoc) - * - * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent) - */ - public void insertUpdate(DocumentEvent e) { + public HistoricalCommand getQueryReference() { - doFiltering(); + return queryReference; } - /* - * (non-Javadoc) - * - * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent) - */ - public void removeUpdate(DocumentEvent e) { + public void clearFiltering() { - doFiltering(); + if (model != null) { + model.clearFilter(); + } + searchText.setText(null); + lblFilter.setText(null); } private synchronized void doFiltering() { - if (table != null) { - EnhancedTableModel model = (EnhancedTableModel) table.getModel(); - String filter = txtFilter.getText().trim(); + if (model != null) { + String filter = searchText.getText().trim(); int found = model.applyFilter(filter); if (found >= 1) { String txt = messages.format("datagrid.found_matches", Integer.toString(found)); @@ -222,50 +209,5 @@ } table.invalidate(); } - } - - /* - * (non-Javadoc) - * - * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) - */ - public void actionPerformed(ActionEvent e) { - - Object src = e.getSource(); - if (src == btnHider) { - txtFilter.setVisible(!txtFilter.isVisible()); - lblFilter.setVisible(!lblFilter.isVisible()); - lblSearch.setVisible(!lblSearch.isVisible()); - glue.setVisible(!glue.isVisible()); - if (txtFilter.isVisible()) { - btnHider.setIcon(new SortableHeaderRenderer.BasicArrowIcon(SwingConstants.NORTH, 4)); - // btnHider.setToolTipText(BasicUtilities.getString("Filter_Hide_Tip")); - } else { - btnHider.setIcon(new SortableHeaderRenderer.BasicArrowIcon(SwingConstants.SOUTH, 4)); - // btnHider.setToolTipText(BasicUtilities.getString("Filter_Show_Tip")); - } - btnHider.getParent().validate(); - btnHider.getParent().repaint(); - } else if (src == actionPageDown) { - EnhancedTableModel model = (EnhancedTableModel) table.getModel(); - model.pageDown(); - } else if (src == actionPageUp) { - EnhancedTableModel model = (EnhancedTableModel) table.getModel(); - model.pageUp(); - } - } - - public void valueChanged(ListSelectionEvent e) { - - EnhancedTableModel model = (EnhancedTableModel) table.getModel(); - String str = nf.format(model.translateRow(table.getSelectedRow()) + 1); - str = str.concat("/"); - str = str.concat(nf.format(model.getTrueRowCount())); - str = str.concat(" ["); - str = str.concat(nf.format(model.getPageOffset() + 1)); - str = str.concat("/"); - str = str.concat(nf.format(model.getPageCount())); - lblLocatr.setText(" ".concat(str).concat("] ")); - } } \ No newline at end of file Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/JdbcWorkbench.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/JdbcWorkbench.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/JdbcWorkbench.java 2007-08-08 01:14:18 UTC (rev 85) @@ -195,6 +195,7 @@ int id = event.getID(); switch (id) { case SharedActions.REFRESH_SELECTED_RESULTS : + refreshSelectedTab(); break; case SharedActions.NAVIGATE_LEFT_TAB : navigateLeftTab(); @@ -304,6 +305,21 @@ } } + private void refreshSelectedTab() { + + JComponent component = (JComponent) centerTabbedPane.getSelectedComponent(); + DataGrid dataGrid = (DataGrid) component.getClientProperty("x"); + HistoricalCommand command = dataGrid.getQueryReference(); + String statement = command.getCommandText(); + boolean connected = checkConnection(); + if (connected) { + TabbedResultsetRenderer renderer = new TabbedResultsetRenderer(centerTabbedPane); + QueryExecutor executor = new QueryExecutor(currentService, renderer, statement); + executor.setLogHistory(false); + executor.run(); + } + } + public void doLayout(JComponent parentComponent, Preferences userPreferences, SwingEventManager swingEventManager) { preferences = userPreferences.node("views/jdbc-workbench"); @@ -1081,7 +1097,6 @@ ca = new CustomAction("refresh-current-view", SharedActions.REFRESH_SELECTED_RESULTS, manager); acclerator = messages.format("menu.refresh_selected_view.accelerator"); - ca.setEnabled(false); ca.putValue(CustomAction.ICON_NAME, "reload"); ca.putValue(Action.ACCELERATOR_KEY, SwingUtilities.getKeyStroke(acclerator)); ca.putValue(Action.DEFAULT, messages.getMessage("menu.refresh_selected_view.title")); @@ -1584,8 +1599,8 @@ row.add(entry.getValue()); model.addRow(row); } + dataGrid.setModel(model); - centerTabbedPane.addTab(messages.format("JdbcWorkbench.database_metadata"), view); index = centerTabbedPane.indexOfComponent(view); centerTabbedPane.setClosableTab(index, true); Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/ResourceBundle.properties =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/ResourceBundle.properties 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/ResourceBundle.properties 2007-08-08 01:14:18 UTC (rev 85) @@ -57,6 +57,9 @@ datagrid.no_matches=No match datagrid.found_matches=Found {0} matche(s). +DataGrid.current_position_of_selection=The row that is currently selected out of all of the rows. +DataGrid.time_spent_aquiring_these_results=Time spent aquiring these results. +DataGrid.service_these_results_came_from=The service used to aquire these results. bookmarkeditor.created-date.title=Created On bookmarkeditor.created-date.tip=The date and time this bookmark was created. Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandEditor.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandEditor.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandEditor.java 2007-08-08 01:14:18 UTC (rev 85) @@ -34,6 +34,7 @@ import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; +import java.util.TooManyListenersException; import java.util.prefs.Preferences; import javax.swing.AbstractAction; @@ -145,13 +146,15 @@ commandEditor.addFocusListener(this); commandEditor.addCaretListener(this); - - DropTarget dropTarget = new TextComponentDropTarget(commandEditor); - dropTarget.setActive(true); + commandEditor.setDragEnabled(true); + DropTarget dropTarget = commandEditor.getDropTarget(); dropTarget.setDefaultActions(DnDConstants.ACTION_COPY_OR_MOVE); - commandEditor.setDropTarget(dropTarget); + try { + dropTarget.addDropTargetListener(new TextComponentDropTarget(commandEditor)); + } catch (TooManyListenersException ignored) { + debug("addDropTargetListener()", ignored); + } - commandEditor.setDragEnabled(true); commandEditor.getDocument().addUndoableEditListener(this); localizeTextComponent(commandEditor, undoManager); } Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandMouseAdapter.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandMouseAdapter.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/SqlCommandMouseAdapter.java 2007-08-08 01:14:18 UTC (rev 85) @@ -53,6 +53,7 @@ */ private Position.Bias[] bias = new Position.Bias[1]; + @Override public void mouseClicked(MouseEvent e) { JEditorPane editor = (JEditorPane) e.getSource(); @@ -69,6 +70,7 @@ } } + @Override public void mouseMoved(MouseEvent e) { JEditorPane editor = (JEditorPane) e.getSource(); @@ -152,6 +154,7 @@ super(url); } + @Override public void connect() { } Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/TabbedResultsetRenderer.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/TabbedResultsetRenderer.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/TabbedResultsetRenderer.java 2007-08-08 01:14:18 UTC (rev 85) @@ -47,6 +47,7 @@ import javax.swing.JProgressBar; import org.apache.log4j.Logger; +import org.isqlviewer.sql.QueryMetadata; import org.isqlviewer.sql.ResultSetRenderer; import org.isqlviewer.swing.EnhancedTabbedPane; import org.isqlviewer.swing.SwingUtilities; @@ -160,7 +161,7 @@ logger.info(messages.format("tabbedresultsetrenderer.rows_affected", new Integer(updateCount))); } - public void finalizeStatement(String stmtID) { + public void finalizeStatement(String stmtID, QueryMetadata metadata) { eyeCandy.updateStatus(messages.format("TabbedResultsetRenderer.finalize_statement", stmtID)); @@ -181,6 +182,9 @@ componentView.removeAll(); dataGrid.doLayout(componentView, null, null); dataGrid.setModel(eyeCandy.getQueryData()); + dataGrid.setMetadata(metadata); + componentView.putClientProperty("x", dataGrid); + tabbedPane.setToolTipTextAt(index, html); tabbedPane.setTitleAt(index, str); tabbedPane.setComponentAt(index, componentView); @@ -360,4 +364,5 @@ return componentView; } } + } \ No newline at end of file Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/SchemaNodeRenderer.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/SchemaNodeRenderer.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/SchemaNodeRenderer.java 2007-08-08 01:14:18 UTC (rev 85) @@ -32,6 +32,7 @@ import org.isqlviewer.model.JdbcSchemaTreeModel; import org.isqlviewer.model.SchemaNode; import org.isqlviewer.model.SchemaNodeType; +import org.isqlviewer.sql.QueryMetadata; import org.isqlviewer.sql.ResultSetRenderer; import org.isqlviewer.util.LoggableObject; @@ -173,7 +174,7 @@ nodeRenderer.recieveResultsetWarnings(set, set.getWarnings()); } } finally { - nodeRenderer.finalizeStatement(""); + nodeRenderer.finalizeStatement("", new QueryMetadata()); try { if (set != null) { set.close(); Modified: isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/TextComponentDropTarget.java =================================================================== --- isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/TextComponentDropTarget.java 2007-08-07 23:56:25 UTC (rev 84) +++ isql-swing/branches/3.1.0-development/src/org/isqlviewer/ui/dnd/TextComponentDropTarget.java 2007-08-08 01:14:18 UTC (rev 85) @@ -26,8 +26,10 @@ import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.dnd.DnDConstants; -import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; +import java.awt.dnd.DropTargetEvent; +import java.awt.dnd.DropTargetListener; import java.io.IOException; import javax.swing.text.BadLocationException; @@ -42,7 +44,7 @@ * @author Mark A. Kobold <mkobold at isqlviewer dot com> * @version 1.0 */ -public class TextComponentDropTarget extends DropTarget { +public class TextComponentDropTarget implements DropTargetListener { private static final long serialVersionUID = 4496993389366518143L; private JTextComponent editor = null; @@ -51,9 +53,8 @@ this.editor = editor; } - public void drop(DropTargetDropEvent event) { - + boolean successful = false; try { if (event.isDataFlavorSupported(DataFlavor.stringFlavor)) { @@ -85,4 +86,36 @@ event.dropComplete(successful); } } + /* (non-Javadoc) + * @see java.awt.dnd.DropTargetListener#dragEnter(java.awt.dnd.DropTargetDragEvent) + */ + public void dragEnter(DropTargetDragEvent dtde) { + + // TODO Auto-generated method stub + + } + /* (non-Javadoc) + * @see java.awt.dnd.DropTargetListener#dragExit(java.awt.dnd.DropTargetEvent) + */ + public void dragExit(DropTargetEvent dte) { + + // TODO Auto-generated method stub + + } + /* (non-Javadoc) + * @see java.awt.dnd.DropTargetListener#dragOver(java.awt.dnd.DropTargetDragEvent) + */ + public void dragOver(DropTargetDragEvent dtde) { + + // TODO Auto-generated method stub + + } + /* (non-Javadoc) + * @see java.awt.dnd.DropTargetListener#dropActionChanged(java.awt.dnd.DropTargetDragEvent) + */ + public void dropActionChanged(DropTargetDragEvent dtde) { + + // TODO Auto-generated method stub + + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |