Revision: 6712
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6712&view=rev
Author: gerdwagner
Date: 2012-11-11 21:12:19 +0000 (Sun, 11 Nov 2012)
Log Message:
-----------
Result table search --> First step
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultFrame.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScale.java
trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/squirrel.properties
trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/session/mainpanel/I18NStrings.properties
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/PopupEditableIOPanel.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellComponentFactory.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/resources/LibraryResources.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/StringUtilities.java
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/LibraryResources.properties
Added Paths:
-----------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/QueryInfoPanel.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TabButton.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/DataSetFindPanel.java
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/DataSetFindPanelListener.java
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/DefaultFindService.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/FindMarkColor.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/FindService.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/FindServiceCellRendererDecorator.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/FindServiceRenderCallBack.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/FindTrace.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/TableTraverser.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/SquirrelConstants.java
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/tablefind/I18NStrings.properties
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/images/hide.png
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/images/hide_sel.png
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/images/marked_to_new_table.png
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/images/table_clean.png
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/resources/images/table_marked.png
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java 2012-11-07 18:17:21 UTC (rev 6711)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java 2012-11-11 21:12:19 UTC (rev 6712)
@@ -17,10 +17,11 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-import java.net.URL;
import net.sourceforge.squirrel_sql.fw.util.Resources;
+import java.net.URL;
+
public class SquirrelResources extends Resources
{
public final static int S_SPLASH_IMAGE_BACKGROUND = 0xAEB0C5;
@@ -29,7 +30,7 @@
private final String _defaultsPath;
- public interface IMenuResourceKeys
+ public interface IMenuResourceKeys
{
String ALIASES = "aliases";
String CLOSE_ALL_SQL_RESULTS = "close_all_sql_results";
@@ -93,6 +94,13 @@
String AGG_XY = "aggXy";
String AGG_MIN = "aggMin";
String AGG_MAX = "aggMax";
+
+ String ARROW_DOWN = "next_nav";
+ String ARROW_UP = "prev_nav";
+
+ String UNMARK = "unmark";
+ String TABLE = "table";
+ String HIDE = "hide";
}
public SquirrelResources(String rsrcBundleBaseName)
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2012-11-07 18:17:21 UTC (rev 6711)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2012-11-11 21:12:19 UTC (rev 6712)
@@ -87,4 +87,6 @@
IIdentifier getIdentifier();
TableState getResultSortableTableState();
+
+ void toggleShowFindPanel();
}
\ No newline at end of file
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/QueryInfoPanel.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/QueryInfoPanel.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/QueryInfoPanel.java 2012-11-11 21:12:19 UTC (rev 6712)
@@ -0,0 +1,103 @@
+package net.sourceforge.squirrel_sql.client.session.mainpanel;
+
+import net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo;
+import net.sourceforge.squirrel_sql.fw.gui.MultipleLineLabel;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.fw.util.StringUtilities;
+
+import javax.swing.*;
+import java.awt.*;
+import java.text.NumberFormat;
+
+public class QueryInfoPanel extends JPanel
+{
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(QueryInfoPanel.class);
+
+ private MultipleLineLabel _queryLbl = new MultipleLineLabel();
+ private JLabel _rowCountLbl = new JLabel();
+ private JLabel _executedLbl = new JLabel();
+ private JLabel _elapsedLbl = new JLabel();
+
+ QueryInfoPanel()
+ {
+ createGUI();
+ }
+
+ void load(int rowCount,
+ SQLExecutionInfo exInfo)
+ {
+ _queryLbl.setText(StringUtilities.cleanString(exInfo.getSQL()));
+ _rowCountLbl.setText(String.valueOf(rowCount));
+ _executedLbl.setText(exInfo.getSQLExecutionStartTime().toString());
+ _elapsedLbl.setText(formatElapsedTime(exInfo));
+ }
+
+ private String formatElapsedTime(SQLExecutionInfo exInfo)
+ {
+ final NumberFormat nbrFmt = NumberFormat.getNumberInstance();
+ double executionLength = exInfo.getSQLExecutionElapsedMillis() / 1000.0;
+ double outputLength = exInfo.getResultsProcessingElapsedMillis() / 1000.0;
+
+ String totalTime = nbrFmt.format(executionLength + outputLength);
+ String queryTime = nbrFmt.format(executionLength);
+ String outputTime = nbrFmt.format(outputLength);
+
+ // i18n[ResultTab.elapsedTime=Total: {0}, SQL query: {1}, Building output: {2}]
+ String elapsedTime =
+ s_stringMgr.getString("ResultTab.elapsedTime",
+ new String[] { totalTime,
+ queryTime,
+ outputTime});
+ return elapsedTime;
+ }
+
+ private void createGUI()
+ {
+ setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+
+ gbc.anchor = GridBagConstraints.NORTHWEST;
+ gbc.gridwidth = 1;
+ gbc.weightx = 0;
+
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.insets = new Insets(5, 10, 5, 10);
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ // i18n[ResultTab.executedLabel=Executed:]
+ String label = s_stringMgr.getString("ResultTab.executedLabel");
+ add(new JLabel(label, SwingConstants.RIGHT), gbc);
+
+ ++gbc.gridy;
+ // i18n[ResultTab.rowCountLabel=Row Count:]
+ label = s_stringMgr.getString("ResultTab.rowCountLabel");
+ add(new JLabel(label, SwingConstants.RIGHT), gbc);
+
+ ++gbc.gridy;
+ // i18n[ResultTab.statementLabel=SQL:]
+ label = s_stringMgr.getString("ResultTab.statementLabel");
+ add(new JLabel(label, SwingConstants.RIGHT), gbc);
+
+ ++gbc.gridy;
+ // i18n[ResultTab.elapsedTimeLabel=Elapsed Time (seconds):]
+ label = s_stringMgr.getString("ResultTab.elapsedTimeLabel");
+ add(new JLabel(label, SwingConstants.RIGHT), gbc);
+
+ gbc.gridwidth = GridBagConstraints.REMAINDER;
+ gbc.weightx = 1;
+
+ gbc.gridx = 1;
+ gbc.gridy = 0;
+ add(_executedLbl, gbc);
+
+ ++gbc.gridy;
+ add(_rowCountLbl, gbc);
+
+ ++gbc.gridy;
+ add(_queryLbl, gbc);
+
+ ++gbc.gridy;
+ add(_elapsedLbl, gbc);
+ }
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultFrame.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultFrame.java 2012-11-07 18:17:21 UTC (rev 6711)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultFrame.java 2012-11-11 21:12:19 UTC (rev 6712)
@@ -61,6 +61,7 @@
private ResultTabFactory _resultTabFactory;
private ResultFrameListener _resultFrameListener;
private JButton _btnReturnToTab;
+ private TabButton _btnToggleFind;
private JCheckBox _chkOnTop;
private JButton _btnReRun;
private JPanel _centerPanel;
@@ -117,12 +118,26 @@
}
});
+ _btnToggleFind.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ onFind();
+ }
+ });
+
if (false == isOnRerun)
{
showFrame(this, false);
}
}
+ private void onFind()
+ {
+ _tab.toggleShowFindPanel();
+ }
+
private void onRerun()
{
_btnReturnToTab.setEnabled(false);
@@ -265,10 +280,15 @@
gbc = new GridBagConstraints(2,0,1,1,1,0,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0,5,0,5), 0,0);
pnlButtons.add(new JPanel(), gbc);
- ImageIcon icon = session.getApplication().getResources().getIcon(SquirrelResources.IImageNames.RERUN);
- _btnReRun = new JButton(icon);
+ ImageIcon iconFind = session.getApplication().getResources().getIcon(SquirrelResources.IImageNames.FIND);
+ _btnToggleFind = new TabButton(iconFind);
+ gbc = new GridBagConstraints(3,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,0,0,0), 0,0);
+ pnlButtons.add(_btnToggleFind, gbc);
+
+ ImageIcon iconReRun = session.getApplication().getResources().getIcon(SquirrelResources.IImageNames.RERUN);
+ _btnReRun = new TabButton(iconReRun);
_btnReRun.setToolTipText(s_stringMgr.getString("ResultFrame.rerun"));
- gbc = new GridBagConstraints(3,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,5,0,5), 0,0);
+ gbc = new GridBagConstraints(4,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,0,0,5), 0,0);
pnlButtons.add(_btnReRun, gbc);
return pnlButtons;
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2012-11-07 18:17:21 UTC (rev 6711)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2012-11-11 21:12:19 UTC (rev 6712)
@@ -24,14 +24,10 @@
*/
import java.awt.BorderLayout;
import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
import java.awt.GridLayout;
-import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.text.NumberFormat;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
@@ -40,7 +36,7 @@
import net.sourceforge.squirrel_sql.client.session.*;
import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.OverviewCtrl;
import net.sourceforge.squirrel_sql.fw.datasetviewer.*;
-import net.sourceforge.squirrel_sql.fw.gui.MultipleLineLabel;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.tablefind.DataSetViewerFindDecorator;
import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
@@ -52,34 +48,35 @@
import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory;
import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties;
import net.sourceforge.squirrel_sql.fw.util.Utilities;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
public class ResultTab extends JPanel implements IHasIdentifier, IResultTab
{
- private static final long serialVersionUID = 1L;
-
/** Uniquely identifies this ResultTab. */
private IIdentifier _id;
/** Current session. */
- transient private ISession _session;
+ private ISession _session;
/** SQL Execution information. */
- transient private SQLExecutionInfo _exInfo;
+ private SQLExecutionInfo _exInfo;
/** Panel displaying the SQL results. */
- transient private IDataSetViewer _resultSetOutput;
+ private DataSetViewerFindDecorator _resultSetOutput;
/** Panel displaying the SQL results meta data. */
- transient private IDataSetViewer _metaDataOutput;
+ private IDataSetViewer _metaDataOutput;
/** Scroll pane for <TT>_resultSetOutput</TT>. */
- private JScrollPane _resultSetSp = new JScrollPane();
+ // SCROLL
+ // private JScrollPane _resultSetSp = new JScrollPane();
/** Scroll pane for <TT>_metaDataOutput</TT>. */
private JScrollPane _metaDataSp = new JScrollPane();
/** Tabbed pane containing the SQL results the the results meta data. */
- private JTabbedPane _tp;
+ private JTabbedPane _tabResultTabs;
/** <TT>SQLExecuterPanel</TT> that this tab is showing results for. */
private SQLResultExecuterPanelFacade _sqlResultExecuterPanelFacade;
@@ -96,15 +93,19 @@
/** Listener to the sessions properties. */
private PropertyChangeListener _propsListener;
- private boolean _allowEditing;
+ private boolean _allowEditing;
+
+ private IDataSetUpdateableTableModel _creator;
+
+ private ResultSetDataSet _rsds;
- transient private IDataSetUpdateableTableModel _creator;
-
- transient private ResultSetDataSet _rsds;
-
/** Internationalized strings for this class. */
- private static final StringManager s_stringMgr =
- StringManagerFactory.getStringManager(ResultTab.class);
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(ResultTab.class);
+
+ private static ILogger s_log = LoggerController.createLogger(ResultTab.class);
+
+
+
private ResultTabListener _resultTabListener;
/**
@@ -169,7 +170,8 @@
if (_allowEditing)
{
- _resultSetOutput = BaseDataSetViewerDestination.getInstance(props.getSQLResultsOutputClassName(), _creator, new DefaultDataModelImplementationDetails(_session));
+ IDataSetViewer dataSetViewer = BaseDataSetViewerDestination.getInstance(props.getSQLResultsOutputClassName(), _creator, new DefaultDataModelImplementationDetails(_session));
+ _resultSetOutput = new DataSetViewerFindDecorator(dataSetViewer, _session.getApplication().getMessageHandler());
}
else
@@ -179,13 +181,16 @@
// and it becomes difficult to know which table (or tables!) an
// edited column belongs to. Therefore limit the output
// to be read-only
- _resultSetOutput = BaseDataSetViewerDestination.getInstance(
- props.getReadOnlySQLResultsOutputClassName(), null, new DefaultDataModelImplementationDetails(_session));
+ IDataSetViewer dataSetViewer = BaseDataSetViewerDestination.getInstance(
+ props.getReadOnlySQLResultsOutputClassName(), null, new DefaultDataModelImplementationDetails(_session));
+
+ _resultSetOutput = new DataSetViewerFindDecorator(dataSetViewer, _session.getApplication().getMessageHandler());
}
- _resultSetSp.setViewportView(_resultSetOutput.getComponent());
- _resultSetSp.setRowHeader(null);
+ // SCROLL
+ // _resultSetSp.setViewportView(_resultSetOutput.getComponent());
+ // _resultSetSp.setRowHeader(null);
if (_session.getProperties().getShowResultsMetaData())
{
@@ -238,10 +243,10 @@
_sql = StringUtilities.cleanString(exInfo.getSQL());
// Display the result set.
- _resultSetOutput.show(rsds, null);
+ _resultSetOutput.getDataSetViewer().show(rsds, null);
_rsds = rsds;
- final int rowCount = _resultSetOutput.getRowCount();
+ final int rowCount = _resultSetOutput.getDataSetViewer().getRowCount();
final int maxRows =_exInfo.getMaxRows();
String escapedSql = Utilities.escapeHtmlChars(_sql);
@@ -279,7 +284,7 @@
}
if (_resultSetOutput != null)
{
- _resultSetOutput.clear();
+ _resultSetOutput.getDataSetViewer().clear();
}
_exInfo = null;
_currentSqlLbl.setText("");
@@ -320,7 +325,7 @@
*/
public void closeTab()
{
- add(_tp, BorderLayout.CENTER);
+ add(_tabResultTabs, BorderLayout.CENTER);
_sqlResultExecuterPanelFacade.closeResultTab(this);
}
@@ -329,13 +334,13 @@
*/
public void returnToTabbedPane()
{
- add(_tp, BorderLayout.CENTER);
+ add(_tabResultTabs, BorderLayout.CENTER);
_sqlResultExecuterPanelFacade.returnToTabbedPane(this);
}
public Component getOutputComponent()
{
- return _tp;
+ return _tabResultTabs;
}
/**
@@ -357,7 +362,7 @@
|| evt.getPropertyName().equals(
SessionProperties.IPropertyNames.SQL_RESULTS_TAB_PLACEMENT))
{
- _tp.setTabPlacement(props.getSQLResultsTabPlacement());
+ _tabResultTabs.setTabPlacement(props.getSQLResultsTabPlacement());
}
}
@@ -370,15 +375,20 @@
{
if (_allowEditing)
{
- TableState resultSortableTableState = getTableState(_resultSetOutput);
+ TableState resultSortableTableState = getTableState(_resultSetOutput.getDataSetViewer());
- _resultSetOutput = BaseDataSetViewerDestination.getInstance(SessionProperties.IDataSetDestinations.EDITABLE_TABLE, _creator, new DefaultDataModelImplementationDetails(_session));
- _resultSetSp.setViewportView(_resultSetOutput.getComponent());
- _resultSetSp.setRowHeader(null);
+ IDataSetViewer dataSetViewer = BaseDataSetViewerDestination.getInstance(SessionProperties.IDataSetDestinations.EDITABLE_TABLE, _creator, new DefaultDataModelImplementationDetails(_session));
+ // _resultSetOutput = new DataSetViewerFindDecorator(dataSetViewer);
+ _resultSetOutput.replaceDataSetViewer(dataSetViewer);
+
+ // SCROLL
+ // _resultSetSp.setViewportView(_resultSetOutput.getComponent());
+ // _resultSetSp.setRowHeader(null);
+
_rsds.resetCursor();
- _resultSetOutput.show(_rsds, null);
+ _resultSetOutput.getDataSetViewer().show(_rsds, null);
- restoreTableState(resultSortableTableState, _resultSetOutput);
+ restoreTableState(resultSortableTableState, _resultSetOutput.getDataSetViewer());
}
else
{
@@ -393,15 +403,21 @@
String readOnlyOutput = props.getReadOnlySQLResultsOutputClassName();
- TableState resultSortableTableState = getTableState(_resultSetOutput);
+ TableState resultSortableTableState = getTableState(_resultSetOutput.getDataSetViewer());
- _resultSetOutput = BaseDataSetViewerDestination.getInstance(readOnlyOutput, _creator, new DefaultDataModelImplementationDetails(_session));
- _resultSetSp.setViewportView(_resultSetOutput.getComponent());
- _resultSetSp.setRowHeader(null);
+ IDataSetViewer dataSetViewer = BaseDataSetViewerDestination.getInstance(readOnlyOutput, _creator, new DefaultDataModelImplementationDetails(_session));
+ // _resultSetOutput = new DataSetViewerFindDecorator(dataSetViewer);
+ _resultSetOutput.replaceDataSetViewer(dataSetViewer);
+
+
+ // SCROLL
+ // _resultSetSp.setViewportView(_resultSetOutput.getComponent());
+ // _resultSetSp.setRowHeader(null);
+
_rsds.resetCursor();
- _resultSetOutput.show(_rsds, null);
+ _resultSetOutput.getDataSetViewer().show(_rsds, null);
- restoreTableState(resultSortableTableState, _resultSetOutput);
+ restoreTableState(resultSortableTableState, _resultSetOutput.getDataSetViewer());
}
}
catch (DataSetException e)
@@ -435,26 +451,27 @@
setLayout(new BorderLayout());
int sqlResultsTabPlacement = _session.getProperties().getSQLResultsTabPlacement();
- _tp = UIFactory.getInstance().createTabbedPane(sqlResultsTabPlacement);
+ _tabResultTabs = UIFactory.getInstance().createTabbedPane(sqlResultsTabPlacement);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayout(1, 3, 0, 0));
panel2.add(new TabButton(new RerunAction(_session.getApplication())));
+ panel2.add(new TabButton(new FindInResultAction(_session.getApplication())));
panel2.add(new TabButton(new CreateResultTabFrameAction(_session.getApplication())));
panel2.add(new TabButton(new CloseAction()));
panel1.setLayout(new BorderLayout());
panel1.add(panel2, BorderLayout.EAST);
panel1.add(_currentSqlLbl, BorderLayout.CENTER);
add(panel1, BorderLayout.NORTH);
- add(_tp, BorderLayout.CENTER);
+ add(_tabResultTabs, BorderLayout.CENTER);
- _resultSetSp.setBorder(BorderFactory.createEmptyBorder());
+ // SCROLL _resultSetSp.setBorder(BorderFactory.createEmptyBorder());
// i18n[ResultTab.resultsTabTitle=Results]
String resultsTabTitle =
s_stringMgr.getString("ResultTab.resultsTabTitle");
- _tp.addTab(resultsTabTitle, _resultSetSp);
+ _tabResultTabs.addTab(resultsTabTitle, _resultSetOutput.getComponent()); // SCROLL
if (_session.getProperties().getShowResultsMetaData())
{
@@ -463,7 +480,7 @@
// i18n[ResultTab.metadataTabTitle=MetaData]
String metadataTabTitle =
s_stringMgr.getString("ResultTab.metadataTabTitle");
- _tp.addTab(metadataTabTitle, _metaDataSp);
+ _tabResultTabs.addTab(metadataTabTitle, _metaDataSp);
}
final JScrollPane sp = new JScrollPane(_queryInfoPanel);
@@ -472,19 +489,19 @@
// i18n[ResultTab.infoTabTitle=Info]
String infoTabTitle =
s_stringMgr.getString("ResultTab.infoTabTitle");
- _tp.addTab(infoTabTitle, sp);
+ _tabResultTabs.addTab(infoTabTitle, sp);
- final int overViewIx = _tp.getTabCount();
+ final int overViewIx = _tabResultTabs.getTabCount();
final OverviewCtrl ctrl = new OverviewCtrl(_session);
- _tp.addTab(ctrl.getTitle(), ctrl.getPanel());
+ _tabResultTabs.addTab(ctrl.getTitle(), ctrl.getPanel());
- _tp.addChangeListener(new ChangeListener()
+ _tabResultTabs.addChangeListener(new ChangeListener()
{
- @Override
+ @Override
public void stateChanged(ChangeEvent e)
{
- if (overViewIx == _tp.getSelectedIndex())
+ if (overViewIx == _tabResultTabs.getSelectedIndex())
{
ctrl.init(_rsds);
}
@@ -493,19 +510,8 @@
}
- private final class TabButton extends JButton
+ private class CloseAction extends SquirrelAction
{
- TabButton(Action action)
- {
- super(action);
- setMargin(new Insets(0, 0, 0, 0));
- setBorderPainted(false);
- setText("");
- }
- }
-
- private class CloseAction extends SquirrelAction
- {
CloseAction()
{
super(
@@ -545,7 +551,30 @@
}
}
+ public class FindInResultAction extends SquirrelAction
+ {
+ FindInResultAction(IApplication app)
+ {
+ super(app, app.getResources());
+ }
+ public void actionPerformed(ActionEvent evt)
+ {
+ toggleShowFindPanel();
+ }
+ }
+
+ @Override
+ public void toggleShowFindPanel()
+ {
+ if(false == _resultSetOutput.toggleShowFindPanel())
+ {
+ _session.getApplication().getMessageHandler().showWarningMessage(s_stringMgr.getString("ResultTab.tableSearchNotSupported"));
+ s_log.warn(s_stringMgr.getString("ResultTab.tableSearchNotSupported"));
+ }
+ }
+
+
/**
* @see net.sourceforge.squirrel_sql.client.session.mainpanel.IResultTab#getIdentifier()
*/
@@ -557,104 +586,13 @@
@Override
public TableState getResultSortableTableState()
{
- return _resultSetOutput.getResultSortableTableState();
+ return _resultSetOutput.getDataSetViewer().getResultSortableTableState();
}
public void applyResultSortableTableState(TableState sortableTableState)
{
- _resultSetOutput.applyResultSortableTableState(sortableTableState);
+ _resultSetOutput.getDataSetViewer().applyResultSortableTableState(sortableTableState);
}
- private static class QueryInfoPanel extends JPanel
- {
-
- private MultipleLineLabel _queryLbl = new MultipleLineLabel();
- private JLabel _rowCountLbl = new JLabel();
- private JLabel _executedLbl = new JLabel();
- private JLabel _elapsedLbl = new JLabel();
-
- QueryInfoPanel()
- {
- super();
- createGUI();
- }
-
- void load(int rowCount,
- SQLExecutionInfo exInfo)
- {
- _queryLbl.setText(StringUtilities.cleanString(exInfo.getSQL()));
- _rowCountLbl.setText(String.valueOf(rowCount));
- _executedLbl.setText(exInfo.getSQLExecutionStartTime().toString());
- _elapsedLbl.setText(formatElapsedTime(exInfo));
- }
-
- private String formatElapsedTime(SQLExecutionInfo exInfo)
- {
- final NumberFormat nbrFmt = NumberFormat.getNumberInstance();
- double executionLength = exInfo.getSQLExecutionElapsedMillis() / 1000.0;
- double outputLength = exInfo.getResultsProcessingElapsedMillis() / 1000.0;
-
- String totalTime = nbrFmt.format(executionLength + outputLength);
- String queryTime = nbrFmt.format(executionLength);
- String outputTime = nbrFmt.format(outputLength);
-
- // i18n[ResultTab.elapsedTime=Total: {0}, SQL query: {1}, Building output: {2}]
- String elapsedTime =
- s_stringMgr.getString("ResultTab.elapsedTime",
- new String[] { totalTime,
- queryTime,
- outputTime});
- return elapsedTime;
- }
-
- private void createGUI()
- {
- setLayout(new GridBagLayout());
- GridBagConstraints gbc = new GridBagConstraints();
-
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridwidth = 1;
- gbc.weightx = 0;
-
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.insets = new Insets(5, 10, 5, 10);
- gbc.fill = GridBagConstraints.HORIZONTAL;
- // i18n[ResultTab.executedLabel=Executed:]
- String label = s_stringMgr.getString("ResultTab.executedLabel");
- add(new JLabel(label, SwingConstants.RIGHT), gbc);
-
- ++gbc.gridy;
- // i18n[ResultTab.rowCountLabel=Row Count:]
- label = s_stringMgr.getString("ResultTab.rowCountLabel");
- add(new JLabel(label, SwingConstants.RIGHT), gbc);
-
- ++gbc.gridy;
- // i18n[ResultTab.statementLabel=SQL:]
- label = s_stringMgr.getString("ResultTab.statementLabel");
- add(new JLabel(label, SwingConstants.RIGHT), gbc);
-
- ++gbc.gridy;
- // i18n[ResultTab.elapsedTimeLabel=Elapsed Time (seconds):]
- label = s_stringMgr.getString("ResultTab.elapsedTimeLabel");
- add(new JLabel(label, SwingConstants.RIGHT), gbc);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weightx = 1;
-
- gbc.gridx = 1;
- gbc.gridy = 0;
- add(_executedLbl, gbc);
-
- ++gbc.gridy;
- add(_rowCountLbl, gbc);
-
- ++gbc.gridy;
- add(_queryLbl, gbc);
-
- ++gbc.gridy;
- add(_elapsedLbl, gbc);
- }
- }
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TabButton.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel...
[truncated message content] |