[Squirrel-sql-commits] SF.net SVN: squirrel-sql:[6721] trunk/sql12/fw/src/main/java/net/ sourcefor
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: <ger...@us...> - 2012-11-21 21:29:21
|
Revision: 6721 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6721&view=rev Author: gerdwagner Date: 2012-11-21 21:29:15 +0000 (Wed, 21 Nov 2012) Log Message: ----------- Result table search --> clean up / bug fix Modified Paths: -------------- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetFindPanelController.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetViewerFindDecorator.java Added Paths: ----------- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/EscapeAction.java Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetFindPanelController.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetFindPanelController.java 2012-11-20 22:05:52 UTC (rev 6720) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetFindPanelController.java 2012-11-21 21:29:15 UTC (rev 6721) @@ -156,13 +156,15 @@ } }; + EscapeAction escapeAction = new EscapeAction(_dataSetFindPanel.btnUnhighlightResult, _dataSetFindPanel.btnHideFindPanel); + JComponent comp = (JComponent) _dataSetFindPanel.cboString.getEditor().getEditorComponent(); comp.registerKeyboardAction(findNextAction, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED); comp.registerKeyboardAction(findNextAction, KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0, false), JComponent.WHEN_FOCUSED); comp.registerKeyboardAction(findPrevAction, KeyStroke.getKeyStroke(KeyEvent.VK_F3, InputEvent.SHIFT_DOWN_MASK, false), JComponent.WHEN_FOCUSED); - comp.registerKeyboardAction(unhighlightAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), JComponent.WHEN_FOCUSED); + comp.registerKeyboardAction(escapeAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), JComponent.WHEN_FOCUSED); } private void onFind(boolean next) @@ -194,6 +196,8 @@ { try { + ensureFindService(); + List<Object[]> allRows = _findService.getRowsForIndexes(_trace.getRowsFound()); ColumnDisplayDefinition[] columnDisplayDefinitions = _findService.getColumnDisplayDefinitions(); @@ -230,6 +234,7 @@ private void clearFind() { _trace.clear(); + ensureFindService(); _findService.repaintAll(); _tableTraverser.reset(); } @@ -238,30 +243,9 @@ { checkDataSetViewerPanel(); - if(null == _findService) - { - _findService = _dataSetViewerTablePanel.createFindService(); + ensureFindService(); - _findService.setFindServiceCallBack(new FindServiceCallBack() - { - @Override - public FindMarkColor getBackgroundColor(int viewRow, int viewColumn) - { - return onGetBackgroundColor(viewRow, viewColumn); - } - @Override - public void tableCellStructureChanged() - { - clearFind(); - } - }); - - _tableTraverser.setFindService(_findService); - - } - - String searchString = "" + _dataSetFindPanel.cboString.getEditor().getItem(); @@ -326,8 +310,35 @@ } + private FindService ensureFindService() + { + if(null == _findService) + { + _findService = _dataSetViewerTablePanel.createFindService(); + _findService.setFindServiceCallBack(new FindServiceCallBack() + { + @Override + public FindMarkColor getBackgroundColor(int viewRow, int viewColumn) + { + return onGetBackgroundColor(viewRow, viewColumn); + } + @Override + public void tableCellStructureChanged() + { + clearFind(); + } + }); + + _tableTraverser.setFindService(_findService); + + } + + return _findService; + } + + private void checkDataSetViewerPanel() { if(null == _dataSetViewerTablePanel) Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetViewerFindDecorator.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetViewerFindDecorator.java 2012-11-20 22:05:52 UTC (rev 6720) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetViewerFindDecorator.java 2012-11-21 21:29:15 UTC (rev 6721) @@ -6,6 +6,8 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; public class DataSetViewerFindDecorator { @@ -43,16 +45,20 @@ }; _dataSetFindPanelController = new DataSetFindPanelController(messageHandler, dataSetFindPanelListener); - _split.setLeftComponent(_dataSetFindPanelController.getPanel()); + _dataSetFindPanelController.setDataSetViewerTablePanel((DataSetViewerTablePanel) _dataSetViewer); + _split.setLeftComponent(new NullPanel()); - if (_dataSetViewer instanceof DataSetViewerTablePanel) + _split.addComponentListener(new ComponentAdapter() { - _dataSetFindPanelController.setDataSetViewerTablePanel((DataSetViewerTablePanel) _dataSetViewer); - } - else - { - _split.setLeftComponent(new JPanel()); - } + @Override + public void componentResized(ComponentEvent e) + { + if(_split.getLeftComponent() instanceof NullPanel) + { + _split.setDividerLocation(0); + } + } + }); if (putTableInScrollpane) @@ -91,11 +97,13 @@ _findPanelOpen = !_findPanelOpen; if (_findPanelOpen) { + _split.setLeftComponent(_dataSetFindPanelController.getPanel()); _split.setDividerLocation(_dataSetFindPanelController.getPanel().getPreferredSize().height); _dataSetFindPanelController.focusTextField(); } else { + _split.setLeftComponent(new NullPanel()); _split.setDividerLocation(0); _dataSetFindPanelController.wasHidden(); } @@ -125,4 +133,15 @@ _dataSetFindPanelController.setDataSetViewerTablePanel(null); } } + + private static class NullPanel extends JPanel + { + private NullPanel() + { + setPreferredSize(new Dimension(0,0)); + setSize(new Dimension(0, 0)); + setMaximumSize(new Dimension(0, 0)); + } + } + } Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/EscapeAction.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/EscapeAction.java (rev 0) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/EscapeAction.java 2012-11-21 21:29:15 UTC (rev 6721) @@ -0,0 +1,48 @@ +package net.sourceforge.squirrel_sql.fw.datasetviewer.tablefind; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class EscapeAction extends AbstractAction +{ + private JButton _btnUnhighlightResult; + private JButton _btnHideFindPanel; + private Timer _timer; + private boolean _hitLately; + + public EscapeAction(JButton btnUnhighlightResult, JButton btnHideFindPanel) + { + super("DataSetFind.EscapeAction"); + _btnUnhighlightResult = btnUnhighlightResult; + _btnHideFindPanel = btnHideFindPanel; + + _timer = new Timer(1000, new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + _hitLately = false; + } + }); + + _timer.setRepeats(false); + } + + @Override + public void actionPerformed(ActionEvent e) + { + if(_hitLately) + { + _btnHideFindPanel.doClick(); + _timer.stop(); + _hitLately = false; + } + else + { + _btnUnhighlightResult.doClick(); + _timer.restart(); + _hitLately = true; + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |