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.
|