Package docking.widgets.table
Class AbstractGTableModel<T>
- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- docking.widgets.table.AbstractGTableModel<T>
-
- All Implemented Interfaces:
RowObjectTableModel<T>
,SelectionStorage<T>
,java.io.Serializable
,javax.swing.table.TableModel
- Direct Known Subclasses:
AbstractSortedTableModel
public abstract class AbstractGTableModel<T> extends javax.swing.table.AbstractTableModel implements RowObjectTableModel<T>, SelectionStorage<T>
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
WIDTH_UNDEFINED
-
Constructor Summary
Constructors Constructor Description AbstractGTableModel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
Call this when the model will no longer be usedprotected int
getIndexForRowObject(T rowObject)
A convenience method to search for the index of a given row object that is visible in the GUI.protected int
getIndexForRowObject(T rowObject, java.util.List<T> data)
Returns the index for the given object in the given list; -1 when the item is not in the list.java.util.List<T>
getLastSelectedObjects()
int
getPreferredColumnWidth(int columnIndex)
int
getRowCount()
int
getRowIndex(T rowObject)
Returns the row number for the given object.T
getRowObject(int row)
Returns the row object for the given row.java.lang.Object
getValueAt(int rowIndex, int columnIndex)
The default implementation ofTableModel.getValueAt(int, int)
that calls the abstractRowObjectTableModel.getColumnValueForRow(Object, int)
.void
refresh()
Invoke this method when the underlying data has changed, but a reload is not required.void
setLastSelectedObjects(java.util.List<T> lastSelectedObjects)
-
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getColumnName, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface docking.widgets.table.RowObjectTableModel
fireTableDataChanged, getColumnValueForRow, getModelData, getName
-
-
-
-
Field Detail
-
WIDTH_UNDEFINED
public static final int WIDTH_UNDEFINED
- See Also:
- Constant Field Values
-
-
Method Detail
-
getRowObject
public T getRowObject(int row)
Description copied from interface:RowObjectTableModel
Returns the row object for the given row. This is the row in the UI. For models that know how to filter, the model row value will not match the view row value. For non-filtering models the view and model rows will always be the same.- Specified by:
getRowObject
in interfaceRowObjectTableModel<T>
- Parameters:
row
- the row for which to return a row object.- Returns:
- the row object
-
getRowIndex
public int getRowIndex(T rowObject)
Description copied from interface:RowObjectTableModel
Returns the row number for the given object.Note: the index returned is always the 'view' index. For non-filtering table models, the 'view' and the 'model' index are the same. However, for filtering table models, the 'view' may be a subset of the 'model' index. Thus, it is possible, if this model is a filtering model, that the given
t
may not have a row value for the current state of the model (i.e., when the model is filtered in the view. If you really need to get the model index in such a situation, seeRowObjectFilterModel
.- Specified by:
getRowIndex
in interfaceRowObjectTableModel<T>
- Parameters:
rowObject
- the object- Returns:
- the row number
-
getRowCount
public int getRowCount()
- Specified by:
getRowCount
in interfacejavax.swing.table.TableModel
-
refresh
public void refresh()
Invoke this method when the underlying data has changed, but a reload is not required.
-
getLastSelectedObjects
public java.util.List<T> getLastSelectedObjects()
- Specified by:
getLastSelectedObjects
in interfaceSelectionStorage<T>
-
setLastSelectedObjects
public void setLastSelectedObjects(java.util.List<T> lastSelectedObjects)
- Specified by:
setLastSelectedObjects
in interfaceSelectionStorage<T>
-
getPreferredColumnWidth
public int getPreferredColumnWidth(int columnIndex)
-
getValueAt
public java.lang.Object getValueAt(int rowIndex, int columnIndex)
The default implementation ofTableModel.getValueAt(int, int)
that calls the abstractRowObjectTableModel.getColumnValueForRow(Object, int)
.- Specified by:
getValueAt
in interfacejavax.swing.table.TableModel
-
getIndexForRowObject
protected int getIndexForRowObject(T rowObject)
A convenience method to search for the index of a given row object that is visible in the GUI. The visible limitation is due to the fact that the data searched is retrieved fromRowObjectTableModel.getModelData()
, which may be filtered.Note: this operation is O(n). For quick lookups, consider using the sorted version of this class.
- Parameters:
rowObject
- The object for which to search.- Returns:
- the index of the item in the data returned by
-
getIndexForRowObject
protected int getIndexForRowObject(T rowObject, java.util.List<T> data)
Returns the index for the given object in the given list; -1 when the item is not in the list.- Parameters:
rowObject
- the itemdata
- the data- Returns:
- the index
-
dispose
public void dispose()
Call this when the model will no longer be used
-
-