Package org.jdesktop.application.session

# Class TableProperty

java.lang.Object
org.jdesktop.application.session.TableProperty

All Implemented Interfaces:
  `PropertySupport`

public class TableProperty extends Object implements PropertySupport
A `sessionState` property for JTable

This class defines how the session state for `JTables` is `saved` and and `restored` in terms of a property called `sessionState`. We save and restore the width of each resizable `TableColumn`, if the number of columns haven't changed.

`TableProperty` is registered for `JTable.class` by default, so this class applies to JTable and any subclass of JTable. One can override the default with the `putProperty` method.

See Also:
  - `TableState`
  - `SessionStorage.save(java.awt.Component, java.lang.String)`
  - `SessionStorage.restore(java.awt.Component, java.lang.String)`

## Constructor Summary

Constructors
Constructor
Description
`TableProperty()`

## Method Summary

Modifier and Type
Method
Description
`Object`
`getSessionState(Component c)`
Returns a `TableState` object for `JTable c` or null, if none of the JTable's columns are `resizable`.
`void`
`setSessionState(Component c, Object state)`
Restore the width of each resizable `TableColumn`, if the number of columns haven't changed.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TableProperty

public TableProperty()

## Method Details

### getSessionState

public Object getSessionState(Component c)
Returns a `TableState` object for `JTable c` or null, if none of the JTable's columns are `resizable`. A width of -1 is used to mark `TableColumns` that are not resizable.

Throws an `IllegalArgumentException` if `Component c` isn't a non-null `JTable`.

Specified by:
  `getSessionState` in interface `PropertySupport`
Parameters:
  `c` - the `JTable` whose columnWidths will be saved in a `TableState` object.
Returns:
  the `TableState` object or null
See Also:
  - `setSessionState(java.awt.Component, java.lang.Object)`
  - `TableState`

### setSessionState

public void setSessionState(Component c, Object state)
Restore the width of each resizable `TableColumn`, if the number of columns haven't changed.

Throws an `IllegalArgumentException` if `c` is not a `JTable` or if `state` is not an instance of `TableState`.

Specified by:
  `setSessionState` in interface `PropertySupport`
Parameters:
  `c` - the JTable whose column widths are to be restored
  `state` - the `TableState` to be restored
See Also:
  - `getSessionState(java.awt.Component)`
  - `TableState`