Revision: 5644
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5644&view=rev
Author: gerdwagner
Date: 2010-06-17 21:46:01 +0000 (Thu, 17 Jun 2010)
Log Message:
-----------
Keep SQL result table layout on rerun SQL
Modified Paths:
--------------
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java
trunk/sql12/doc/changes.txt
trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java
trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java
trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java
Added Paths:
-----------
trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java
Removed Paths:
-------------
trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -22,9 +22,9 @@
import net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo;
import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
-import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetMetaDataDataSet;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.TableState;
import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
@@ -86,4 +86,5 @@
*/
IIdentifier getIdentifier();
+ TableState getResultSortableTableState();
}
\ No newline at end of file
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -483,7 +483,7 @@
}
- private final class TabButton extends JButton
+ private final class TabButton extends JButton
{
TabButton(Action action)
{
@@ -544,7 +544,19 @@
return _id;
}
- private static class QueryInfoPanel extends JPanel
+ @Override
+ public TableState getResultSortableTableState()
+ {
+ return _resultSetOutput.getResultSortableTableState();
+ }
+
+ public void applyResultSortableTableState(TableState sortableTableState)
+ {
+ _resultSetOutput.applyResultSortableTableState(sortableTableState);
+ }
+
+
+ private static class QueryInfoPanel extends JPanel
{
private static final long serialVersionUID = 2124193091025851544L;
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -56,7 +56,6 @@
import net.sourceforge.squirrel_sql.client.action.ActionCollection;
import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory;
import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget;
-import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DesktopStyle;
import net.sourceforge.squirrel_sql.client.preferences.SquirrelPreferences;
import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel;
import net.sourceforge.squirrel_sql.client.session.ISQLExecuterHandler;
@@ -71,10 +70,7 @@
import net.sourceforge.squirrel_sql.client.session.event.ISQLExecutionListener;
import net.sourceforge.squirrel_sql.client.session.event.ResultTabEvent;
import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties;
-import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
-import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel;
-import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet;
-import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetMetaDataDataSet;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.*;
import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeClob;
import net.sourceforge.squirrel_sql.fw.dialects.DialectFactory;
import net.sourceforge.squirrel_sql.fw.dialects.DialectType;
@@ -799,6 +795,16 @@
}
else
{
+ if (null != resultTabToReplace && _session.getProperties().getKeepTableLayoutOnRerun())
+ {
+ TableState sortableTableState = resultTabToReplace.getResultSortableTableState();
+ if (null != sortableTableState)
+ {
+ tab.applyResultSortableTableState(sortableTableState);
+ }
+ }
+
+
int indexToReplace = -1;
ImageIcon tabIcon = null;
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -1,5 +1,6 @@
package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale;
+import net.sourceforge.squirrel_sql.fw.datasetviewer.TableState;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel;
import net.sourceforge.squirrel_sql.fw.gui.SortableTable;
@@ -107,7 +108,7 @@
public void setParentScaleTable(DataScaleTable parent)
{
- ScaleTableState st = new ScaleTableState(parent);
+ TableState st = new TableState(parent);
st.apply(this);
_parent = parent;
Deleted: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -1,67 +0,0 @@
-package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale;
-
-import javax.swing.*;
-import java.awt.*;
-
-public class ScaleTableState
-{
- private int _sortedColumn;
- private boolean _sortedAscending;
- private Rectangle _visibleRect;
- private int[] _columnWidths;
- private int _selectedRow;
-
- public ScaleTableState(DataScaleTable table)
- {
- _sortedColumn = table.getSortableTableModel().getSortedColumn();
- _sortedAscending = table.getSortableTableModel().isSortedAscending();
-
- _columnWidths = new int[table.getColumnModel().getColumnCount()];
-
- _selectedRow = table.getSelectedRow();
-
- for (int i = 0; i < _columnWidths.length; i++)
- {
- _columnWidths[i] = table.getColumnModel().getColumn(i).getWidth();
- }
- _visibleRect = table.getVisibleRect();
-
-
-
- }
-
- public void apply(final DataScaleTable table)
- {
- Runnable runnable = new Runnable()
- {
- public void run()
- {
- doApply(table);
- }
- };
-
- SwingUtilities.invokeLater(runnable);
- }
-
- private void doApply(DataScaleTable table)
- {
- if(-1 != _sortedColumn)
- {
- table.getSortableTableModel().sortByColumn(_sortedColumn, _sortedAscending);
- }
-
-
- for (int i = 0; i < _columnWidths.length; i++)
- {
- table.getColumnModel().getColumn(i).setPreferredWidth(_columnWidths[i]);
- }
-
- if(-1 != _selectedRow)
- {
- table.getSelectionModel().setSelectionInterval(_selectedRow, _selectedRow);
- }
-
-
- table.scrollRectToVisible(_visibleRect);
- }
-}
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -72,7 +72,9 @@
String TABLE = s_stringMgr.getString("generalSessionPropertiesPanel.table");
// i18n[generalSessionPropertiesPanel.editableTable=Editable Table]
String EDITABLE_TABLE = s_stringMgr.getString("generalSessionPropertiesPanel.editableTable");
- // i18n[generalSessionPropertiesPanel.text=Text]
+ // i18n[generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun=Keep table layout on rerun SQL]
+ String KEEP_TABLE_LAYOUT_ON_RERUN= s_stringMgr.getString("generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun");
+ // i18n[generalSessionPropertiesPanel.text=Text]
String TEXT = s_stringMgr.getString("generalSessionPropertiesPanel.text");
// i18n[generalSessionPropertiesPanel.dataTYpe1=Properties for the individual Data Types may be set in the]
@@ -148,6 +150,7 @@
private TabPlacementCombo _sqlResultsTabPlacementCmb = new TabPlacementCombo();
private OutputTypeCombo _metaDataCmb = new OutputTypeCombo(false);
private OutputTypeCombo _sqlResultsCmb = new OutputTypeCombo(true);
+ private JCheckBox _chkKeepTableLayoutOnRerun = new JCheckBox();
private OutputTypeCombo _tableContentsCmb = new OutputTypeCombo(true);
MyPanel()
@@ -222,6 +225,7 @@
_metaDataCmb.selectClassName(props.getMetaDataOutputClassName());
_sqlResultsCmb.selectClassName(props.getSQLResultsOutputClassName());
+ _chkKeepTableLayoutOnRerun.setSelected(props.getKeepTableLayoutOnRerun());
_tableContentsCmb.selectClassName(props.getTableContentsOutputClassName());
}
@@ -230,6 +234,7 @@
props.setShowToolBar(_showToolBar.isSelected());
props.setMetaDataOutputClassName(_metaDataCmb.getSelectedClassName());
props.setSQLResultsOutputClassName(_sqlResultsCmb.getSelectedClassName());
+ props.setKeepTableLayoutOnRerun(_chkKeepTableLayoutOnRerun.isSelected());
props.setTableContentsOutputClassName(_tableContentsCmb.getSelectedClassName());
TabPlacement tp = (TabPlacement)_mainTabPlacementCmb.getSelectedItem();
@@ -347,6 +352,13 @@
++gbc.gridx;
pnl.add(_sqlResultsCmb, gbc);
+
+ ++gbc.gridy;
+ gbc.gridx = 0;
+ gbc.gridwidth = 2;
+ _chkKeepTableLayoutOnRerun.setText(GeneralSessionPropertiesPanelI18n.KEEP_TABLE_LAYOUT_ON_RERUN);
+ pnl.add(_chkKeepTableLayoutOnRerun, gbc);
+
return pnl;
}
}
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties 2010-06-17 21:46:01 UTC (rev 5644)
@@ -84,4 +84,6 @@
SessionObjectTreePropertiesPanel.schemaPrefixNote=(Note: This property only influences Schema display in the Object tree. To configure Schema loading use Alias properties.)
-SessionSQLPropertiesPanel.tokenizerNotEditableMsg=One or more of the following properties are not editable because they are perdefined by your database specific Plugin. You may be able to change these properties in the Plugin's Globale Preferences.
\ No newline at end of file
+SessionSQLPropertiesPanel.tokenizerNotEditableMsg=One or more of the following properties are not editable because they are perdefined by your database specific Plugin. You may be able to change these properties in the Plugin's Globale Preferences.
+
+generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun=Keep SQL result table layout on rerun SQL
\ No newline at end of file
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -37,10 +37,6 @@
*/
public class SessionProperties implements Cloneable, Serializable, ISessionProperties
{
- /**
- * Change this when this class changes.
- */
- private static final long serialVersionUID = 1L;
public interface IDataSetDestinations
{
@@ -87,6 +83,7 @@
String SQL_START_OF_LINE_COMMENT = "sqlStartOfLineComment";
String SQL_STATEMENT_SEPARATOR_STRING = "sqlStatementSeparatorString";
String TABLE_CONTENTS_OUTPUT_CLASS_NAME = "tableContentsOutputClassName";
+ String KEEP_TABLE_LAYOUT_ON_RERUN = "keepTableLayoutOnRerun";
String LIMIT_SQL_RESULT_TABS = "limitSqlResultTabs";
String REMOVE_MULTI_LINE_COMMENT = "removeMultiLineComment";
}
@@ -230,6 +227,9 @@
private boolean _limitSqlResultTabs = true;
+ private boolean _keepTableLayoutOnRerun;
+
+
/**
* The maximum number of open result tabs.
* <= 0 means unlimited.
@@ -907,6 +907,20 @@
return _objectFilterExclude;
}
+ public boolean getKeepTableLayoutOnRerun()
+ {
+ return _keepTableLayoutOnRerun;
+ }
+
+ public synchronized void setKeepTableLayoutOnRerun(boolean data)
+ {
+ final boolean oldValue = _keepTableLayoutOnRerun;
+ _keepTableLayoutOnRerun = data;
+ getPropertyChangeReporter().firePropertyChange(IPropertyNames.KEEP_TABLE_LAYOUT_ON_RERUN,
+ oldValue, _keepTableLayoutOnRerun);
+ }
+
+
/**
* Set the comma-separated list of catalog prefixes to display in the object tree.
*/
Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java
===================================================================
--- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -94,6 +94,9 @@
new PropertyDescriptor(IPropNames.TABLE_CONTENTS_OUTPUT_CLASS_NAME,
SessionProperties.class, "getTableContentsOutputClassName",
"setTableContentsOutputClassName"),
+ new PropertyDescriptor(IPropNames.KEEP_TABLE_LAYOUT_ON_RERUN,
+ SessionProperties.class, "getKeepTableLayoutOnRerun",
+ "setKeepTableLayoutOnRerun"),
new PropertyDescriptor(IPropNames.ABORT_ON_ERROR, SessionProperties.class,
"getAbortOnError", "setAbortOnError"),
new PropertyDescriptor(IPropNames.SQL_RESULT_TAB_LIMIT, SessionProperties.class,
Modified: trunk/sql12/doc/changes.txt
===================================================================
--- trunk/sql12/doc/changes.txt 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/doc/changes.txt 2010-06-17 21:46:01 UTC (rev 5644)
@@ -6,6 +6,11 @@
Enhancements:
+Session Property: "Keep SQL result table layout on rerun SQL"
+If this option is checked the layout of the table of a SQL result is tried to be restored after rerunning the SQL.
+Note: You rerun a SQL when you click the running man button on the upper left of a SQL result.
+
+
New way to view query results: There is an new tab inside a query result named "Overview".
It might need some trying out to understand what it does.
Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java
===================================================================
--- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -199,4 +199,15 @@
}
return dsv;
}
+
+ @Override
+ public TableState getResultSortableTableState()
+ {
+ return null;
+ }
+
+ @Override
+ public void applyResultSortableTableState(TableState sortableTableState)
+ {
+ }
}
Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java
===================================================================
--- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -837,5 +837,17 @@
//
// End of code related to printing
//
-
+
+
+ @Override
+ public TableState getResultSortableTableState()
+ {
+ return new TableState(_table);
+ }
+
+ @Override
+ public void applyResultSortableTableState(TableState sortableTableState)
+ {
+ sortableTableState.apply(_table);
+ }
}
Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java
===================================================================
--- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java 2010-06-14 00:24:51 UTC (rev 5643)
+++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -95,4 +95,8 @@
* @return the object IDataSetUpdateableModel object.
*/
IDataSetUpdateableModel getUpdateableModelReference();
+
+ TableState getResultSortableTableState();
+
+ void applyResultSortableTableState(TableState sortableTableState);
}
Added: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java
===================================================================
--- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java (rev 0)
+++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java 2010-06-17 21:46:01 UTC (rev 5644)
@@ -0,0 +1,112 @@
+package net.sourceforge.squirrel_sql.fw.datasetviewer;
+
+import net.sourceforge.squirrel_sql.fw.gui.SortableTable;
+import net.sourceforge.squirrel_sql.fw.gui.SortableTableModel;
+
+import javax.swing.*;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
+import java.awt.*;
+import java.util.HashMap;
+
+public class TableState
+{
+ private boolean _applySorting;
+
+ private int _sortedColumn;
+ private boolean _sortedAscending;
+ private Rectangle _visibleRect;
+ private HashMap<Integer, Integer> _columnWidthsByModelIndex = new HashMap<Integer, Integer>();
+ private HashMap<Integer, Integer> _columnIndexByModelIndex = new HashMap<Integer, Integer>();
+ private int _selectedRow;
+
+ public TableState(JTable table)
+ {
+
+ if(table.getModel() instanceof SortableTableModel)
+ {
+ _applySorting = true;
+ _sortedColumn = ((SortableTableModel)table.getModel()).getSortedColumn();
+ _sortedAscending = ((SortableTableModel)table.getModel()).isSortedAscending();
+ }
+
+
+ _selectedRow = table.getSelectedRow();
+
+ for (int i = 0; i < table.getColumnModel().getColumnCount(); i++)
+ {
+ TableColumn column = table.getColumnModel().getColumn(i);
+ _columnWidthsByModelIndex.put(column.getModelIndex(), column.getWidth());
+ _columnIndexByModelIndex.put(column.getModelIndex(), i);
+ }
+ _visibleRect = table.getVisibleRect();
+
+
+
+ }
+
+ public void apply(final JTable table)
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ doApply(table);
+ }
+ };
+
+ SwingUtilities.invokeLater(runnable);
+ }
+
+ private void doApply(JTable table)
+ {
+ if (_applySorting && table.getModel() instanceof SortableTableModel)
+ {
+ if(-1 != _sortedColumn)
+ {
+ ((SortableTableModel)table.getModel()).sortByColumn(_sortedColumn, _sortedAscending);
+ }
+ }
+
+
+ for (int i = 0; i < table.getColumnModel().getColumnCount(); i++)
+ {
+ Integer width = _columnWidthsByModelIndex.get(table.getColumnModel().getColumn(i).getModelIndex());
+ if (null != width)
+ {
+ table.getColumnModel().getColumn(i).setPreferredWidth(width);
+ }
+ }
+
+ for (Integer modelIndex : _columnIndexByModelIndex.keySet())
+ {
+ moveTo(table.getColumnModel(), modelIndex, _columnIndexByModelIndex.get(modelIndex));
+ }
+
+
+ if(-1 != _selectedRow)
+ {
+ table.getSelectionModel().setSelectionInterval(_selectedRow, _selectedRow);
+ }
+
+
+ table.scrollRectToVisible(_visibleRect);
+ }
+
+ private void moveTo(TableColumnModel columnModel, int modelIndex, int columnIndex)
+ {
+ if(columnIndex >= columnModel.getColumnCount() || columnIndex <= 0)
+ {
+ return;
+ }
+
+ for (int i = 0; i < columnModel.getColumnCount(); i++)
+ {
+ if (modelIndex == columnModel.getColumn(i).getModelIndex())
+ {
+ columnModel.moveColumn(i, columnIndex);
+ break;
+ }
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|