be.ac.ulg.montefiore.run.totem.visualtopo.guiComponents.domainTables
Class XTableColumnModel

java.lang.Object
  extended by javax.swing.table.DefaultTableColumnModel
      extended by be.ac.ulg.montefiore.run.totem.visualtopo.guiComponents.domainTables.XTableColumnModel
All Implemented Interfaces:
java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.swing.event.ListSelectionListener, javax.swing.table.TableColumnModel

public class XTableColumnModel
extends javax.swing.table.DefaultTableColumnModel

XTableColumnModel extends the DefaultTableColumnModel . It provides a comfortable way to hide/show columns. Columns keep their positions when hidden and shown again. In order to work with JTable it cannot add any events to TableColumnModelListener. Therefore hiding a column will result in columnRemoved event and showing it again will notify listeners of a columnAdded, and possibly a columnMoved event. For the same reason the following methods still deal with visible columns only: getColumnCount(), getColumns(), getColumnIndex(), getColumn() There are overloaded versions of these methods that take a parameter onlyVisible which let's you specify wether you want invisible columns taken into account.

Version:
0.9 04/03/01
Author:
Stephen Kelvin, mail@StephenKelvin.de
See Also:
DefaultTableColumnModel, Serialized Form

Field Summary
protected  java.util.Vector allTableColumns
          Array of TableColumn objects in this model.
 
Fields inherited from class javax.swing.table.DefaultTableColumnModel
changeEvent, columnMargin, columnSelectionAllowed, listenerList, selectionModel, tableColumns, totalColumnWidth
 
Method Summary
 void addColumn(javax.swing.table.TableColumn column)
          Append column to the right of exisiting columns.
 javax.swing.table.TableColumn getColumn(int columnIndex, boolean onlyVisible)
          Returns the TableColumn object for the column at columnIndex.
 javax.swing.table.TableColumn getColumnByModelIndex(int modelColumnIndex)
          Maps the index of the column in the table model at modelColumnIndex to the TableColumn object.
 int getColumnCount(boolean onlyVisible)
          Returns the total number of columns in this model.
 int getColumnIndex(java.lang.Object identifier, boolean onlyVisible)
          Returns the position of the first column whose identifier equals identifier.
 java.util.Enumeration getColumns(boolean onlyVisible)
          Returns an Enumeration of all the columns in the model.
 boolean isColumnVisible(javax.swing.table.TableColumn aColumn)
          Checks wether the specified column is currently visible.
 void moveColumn(int oldIndex, int newIndex)
          Moves the column from oldIndex to newIndex.
 void removeColumn(javax.swing.table.TableColumn column)
          Removes column from this column model.
 void setAllColumnsVisible()
          Makes all columns in this model visible
 void setColumnVisible(javax.swing.table.TableColumn column, boolean visible)
          Sets the visibility of the specified TableColumn.
 
Methods inherited from class javax.swing.table.DefaultTableColumnModel
addColumnModelListener, createSelectionModel, fireColumnAdded, fireColumnMarginChanged, fireColumnMoved, fireColumnRemoved, fireColumnSelectionChanged, getColumn, getColumnCount, getColumnIndex, getColumnIndexAtX, getColumnMargin, getColumnModelListeners, getColumns, getColumnSelectionAllowed, getListeners, getSelectedColumnCount, getSelectedColumns, getSelectionModel, getTotalColumnWidth, propertyChange, recalcWidthCache, removeColumnModelListener, setColumnMargin, setColumnSelectionAllowed, setSelectionModel, valueChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

allTableColumns

protected java.util.Vector allTableColumns
Array of TableColumn objects in this model. Holds all column objects, regardless of their visibility

Method Detail

setColumnVisible

public void setColumnVisible(javax.swing.table.TableColumn column,
                             boolean visible)
Sets the visibility of the specified TableColumn. The call is ignored if the TableColumn is not found in this column model or its visibility status did not change.

Parameters:
aColumn - the column to show/hide
visible - its new visibility status

setAllColumnsVisible

public void setAllColumnsVisible()
Makes all columns in this model visible


getColumnByModelIndex

public javax.swing.table.TableColumn getColumnByModelIndex(int modelColumnIndex)
Maps the index of the column in the table model at modelColumnIndex to the TableColumn object. There may me multiple TableColumn objects showing the same model column, though this is uncommon. This method will always return the first visible or else the first invisible column with the specified index.

Parameters:
modelColumnIndex - index of column in table model
Returns:
table column object or null if no such column in this column model

isColumnVisible

public boolean isColumnVisible(javax.swing.table.TableColumn aColumn)
Checks wether the specified column is currently visible.

Parameters:
aColumn - column to check
Returns:
visibility of specified column (false if there is no such column at all. [It's not visible, right?])

addColumn

public void addColumn(javax.swing.table.TableColumn column)
Append column to the right of exisiting columns. Posts columnAdded event.

Specified by:
addColumn in interface javax.swing.table.TableColumnModel
Overrides:
addColumn in class javax.swing.table.DefaultTableColumnModel
Parameters:
column - The column to be added
Throws:
java.lang.IllegalArgumentException - if column is null
See Also:
removeColumn(javax.swing.table.TableColumn)

removeColumn

public void removeColumn(javax.swing.table.TableColumn column)
Removes column from this column model. Posts columnRemoved event. Will do nothing if the column is not in this model.

Specified by:
removeColumn in interface javax.swing.table.TableColumnModel
Overrides:
removeColumn in class javax.swing.table.DefaultTableColumnModel
Parameters:
column - the column to be added
See Also:
addColumn(javax.swing.table.TableColumn)

moveColumn

public void moveColumn(int oldIndex,
                       int newIndex)
Moves the column from oldIndex to newIndex. Posts columnMoved event. Will not move any columns if oldIndex equals newIndex.

Specified by:
moveColumn in interface javax.swing.table.TableColumnModel
Overrides:
moveColumn in class javax.swing.table.DefaultTableColumnModel
Parameters:
oldIndex - index of column to be moved
newIndex - new index of the column
Throws:
java.lang.IllegalArgumentException - if either oldIndex or newIndex are not in [0, getColumnCount() - 1]

getColumnCount

public int getColumnCount(boolean onlyVisible)
Returns the total number of columns in this model.

Parameters:
onlyVisible - if set only visible columns will be counted
Returns:
the number of columns in the tableColumns array
See Also:
getColumns(boolean)

getColumns

public java.util.Enumeration getColumns(boolean onlyVisible)
Returns an Enumeration of all the columns in the model.

Parameters:
onlyVisible - if set all invisible columns will be missing from the enumeration.
Returns:
an Enumeration of the columns in the model

getColumnIndex

public int getColumnIndex(java.lang.Object identifier,
                          boolean onlyVisible)
Returns the position of the first column whose identifier equals identifier. Position is the the index in all visible columns if onlyVisible is true or else the index in all columns.

Parameters:
identifier - the identifier object to search for
onlyVisible - if set searches only visible columns
Returns:
the index of the first column whose identifier equals identifier
Throws:
java.lang.IllegalArgumentException - if identifier is null, or if no TableColumn has this identifier
See Also:
getColumn(int, boolean)

getColumn

public javax.swing.table.TableColumn getColumn(int columnIndex,
                                               boolean onlyVisible)
Returns the TableColumn object for the column at columnIndex.

Parameters:
columnIndex - the index of the column desired
onlyVisible - if set columnIndex is meant to be relative to all visible columns only else it is the index in all columns
Returns:
the TableColumn object for the column at columnIndex


Copyright © 2004-2007 Research Unit in Networking, All Rights Reserved.