com.antelmann.db
Class PropertyEntryTableModel<T extends PropertyEntry>
java.lang.Object
javax.swing.table.AbstractTableModel
com.antelmann.util.table.AbstractObjectTableModel<T>
com.antelmann.db.PropertyEntryTableModel<T>
- All Implemented Interfaces:
- ListRetriever<T>, Refreshable, ObjectTableModel<T>, Serializable, Iterable<T>, TableModel
public class PropertyEntryTableModel<T extends PropertyEntry>
- extends AbstractObjectTableModel<T>
a TableModel that first uses the value of method names and then tries to retrieve properties
based on the name as key.
By default, this model remains read-only, but since the setValue(Object, int, int)
method is already implemented (which simply sets the property), you can enable
certain columns to become editable.
Note that for the use of methods, it is required to pass a non-empty list into
either the constructor or the refreshAll() method, so that the method name can
be determined from an object; otherwise, only the property value can be used;
update on this limitation: it has been fixed by providing the type with the
constructor at runtime.
The functionality is derived from MethodTableName, but is extended to refer to property values,
if no appropriate method is found.
- Author:
- Holger Antelmann
- See Also:
MethodTableModel,
Serialized Form
| Methods inherited from class com.antelmann.util.table.AbstractObjectTableModel |
add, add, clear, contains, getColumnClass, getList, getRelevantList, getRelevantListDescription, getRowCount, getRowFor, getRowValue, iterator, moveDown, moveUp, refreshContent, remove, remove, setColumnName, setColumnNames, setColumnType, setColumnTypes, setRowValues, swap |
| Methods inherited from class javax.swing.table.AbstractTableModel |
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
methodOrPropertyNames
protected String[] methodOrPropertyNames
type
protected Class<T extends PropertyEntry> type
methods
protected Method[] methods
editableColumns
protected HashSet<Integer> editableColumns
PropertyEntryTableModel
public PropertyEntryTableModel(Class<T> type,
String... methodOrPropertyNames)
PropertyEntryTableModel
public PropertyEntryTableModel(Class<T> type,
Collection<T> list,
String... methodOrPropertyNames)
throws IllegalArgumentException
- Throws:
IllegalArgumentException
refreshAll
public void refreshAll(Class<T> type,
Collection<T> list,
String... methodOrPropertyNames)
throws IllegalArgumentException
- if no methodOrPropertyNames are given (and the list is non-empty), all properties are listed
- Throws:
IllegalArgumentException
getColumnCount
public int getColumnCount()
getValueAt
public Object getValueAt(int row,
int column)
getColumnName
public String getColumnName(int column)
- returns the column name which - in the case of a method name - may be altered according to Beans specifications
(i.e. "is" and "get" is removed at the beginning if the following letter is upper-case).
If the given column doesn't reflect on a method name, the methodOrPropertyName originally given is returned.
- Specified by:
getColumnName in interface TableModel- Overrides:
getColumnName in class AbstractObjectTableModel<T extends PropertyEntry>
setValueAt
public void setValueAt(Object value,
int row,
int column)
- sets the property for the given value
- Specified by:
setValueAt in interface TableModel- Overrides:
setValueAt in class AbstractTableModel
isCellEditable
public boolean isCellEditable(int row,
int column)
- Specified by:
isCellEditable in interface TableModel- Overrides:
isCellEditable in class AbstractTableModel
setColumnEditable
public void setColumnEditable(int column,
boolean flag)
(c) Holger Antelmann since 2001- all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads