org.tbee.swing.table
Class BeanTableModelForEdit<T>

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by org.tbee.swing.table.AbstractTableModelForEdit
          extended by org.tbee.swing.table.BeanTableModelForEdit<T>
All Implemented Interfaces:
java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.swing.table.TableModel, TableModelForEdit

public class BeanTableModelForEdit<T>
extends AbstractTableModelForEdit
implements java.beans.PropertyChangeListener

A table that is able to quickly show and edit a collection of beans in a table. A better name might have been BeanTableModelForEdit

Version:
$Revision: 1.3 $
See Also:
Serialized Form

Nested Class Summary
static class BeanTableModelForEdit.Column
           
 
Field Summary
protected  BeanTableModelForEdit.Column[] iColumns
           
protected  java.util.Map<java.awt.Point,java.lang.String> iErrors
           
protected  java.util.List<T> iList
           
static java.lang.String SOURCECODE_VERSION
          Standard variable for determining version of a class file.
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
BeanTableModelForEdit(BeanTableModelForEdit.Column... columns)
           
BeanTableModelForEdit(java.util.Collection data, BeanTableModelForEdit.Column... columns)
           
BeanTableModelForEdit(nl.knowledgeplaza.util.collection.ObservableCollection data, BeanTableModelForEdit.Column... columns)
           
 
Method Summary
 int addRowAt(int rowIndex)
           
protected  void attachPropertyChangeListener(java.lang.Object entry)
          attach this as a property change listener
 void clear()
          clear
 void clearErrorMessageAt(int rowIndex, int columnIndex)
           
protected  T createNewObject()
          Return a new object.
 void deleteRowAt(int rowIndex)
           
protected  void detachPropertyChangeListener(java.lang.Object entry)
          Detach property change listeners
 int findColumnByProperty(java.lang.String property)
          find a column by property
 int findColumnByTitle(java.lang.String title)
          find a column by title
 java.lang.Class getBeanClass()
           
 java.lang.Class getColumnClass(int columnIndex)
           
 int getColumnCount()
           
 java.lang.String getColumnName(int columnIndex)
           
 java.lang.String getErrorMessageAt(int rowIndex, int columnIndex)
           
 int getRowCount()
           
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
           
 java.lang.String getWarnMessageAt(int rowIndex, int columnIndex)
           
protected  void initPropertyChangeListener(java.lang.Object entry)
          Initialize property change listener
 boolean isCellEditable(int rowIndex, int columnIndex)
           
 void propertyChange(java.beans.PropertyChangeEvent e)
          Handle a property change so that is fires a TableCellUpdated The PCE may not be on the EDT, if that is the case this method moves the table-event onto the EDT using invokeAndWait
 void setBeanClass(java.lang.Class clazz)
           
 void setErrorMessageAt(int rowIndex, int columnIndex, java.lang.String message)
           
 void setValueAt(java.lang.Object value, int rowIndex, int columnIndex)
           
 
Methods inherited from class org.tbee.swing.table.AbstractTableModelForEdit
fireTableCellUpdatedInvokeAndWait, fireTableCellUpdatedInvokeLater
 
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
 
Methods inherited from interface javax.swing.table.TableModel
addTableModelListener, removeTableModelListener
 

Field Detail

SOURCECODE_VERSION

public static final java.lang.String SOURCECODE_VERSION
Standard variable for determining version of a class file.

See Also:
Constant Field Values

iList

protected java.util.List<T> iList

iColumns

protected BeanTableModelForEdit.Column[] iColumns

iErrors

protected java.util.Map<java.awt.Point,java.lang.String> iErrors
Constructor Detail

BeanTableModelForEdit

public BeanTableModelForEdit(BeanTableModelForEdit.Column... columns)
Parameters:
data -
columns -

BeanTableModelForEdit

public BeanTableModelForEdit(java.util.Collection data,
                             BeanTableModelForEdit.Column... columns)
Parameters:
data -
columns -

BeanTableModelForEdit

public BeanTableModelForEdit(nl.knowledgeplaza.util.collection.ObservableCollection data,
                             BeanTableModelForEdit.Column... columns)
Parameters:
data -
columns -
Method Detail

clear

public void clear()
clear


findColumnByTitle

public int findColumnByTitle(java.lang.String title)
find a column by title


findColumnByProperty

public int findColumnByProperty(java.lang.String property)
find a column by property


createNewObject

protected T createNewObject()
Return a new object. May be overwritten to allow auto creating of records or use the setBeanClass.

Returns:

getBeanClass

public java.lang.Class getBeanClass()

setBeanClass

public void setBeanClass(java.lang.Class clazz)

addRowAt

public int addRowAt(int rowIndex)
Specified by:
addRowAt in interface TableModelForEdit

deleteRowAt

public void deleteRowAt(int rowIndex)
Specified by:
deleteRowAt in interface TableModelForEdit

getErrorMessageAt

public java.lang.String getErrorMessageAt(int rowIndex,
                                          int columnIndex)
Specified by:
getErrorMessageAt in interface TableModelForEdit
Overrides:
getErrorMessageAt in class AbstractTableModelForEdit

setErrorMessageAt

public void setErrorMessageAt(int rowIndex,
                              int columnIndex,
                              java.lang.String message)

clearErrorMessageAt

public void clearErrorMessageAt(int rowIndex,
                                int columnIndex)

getWarnMessageAt

public java.lang.String getWarnMessageAt(int rowIndex,
                                         int columnIndex)
Specified by:
getWarnMessageAt in interface TableModelForEdit
Overrides:
getWarnMessageAt in class AbstractTableModelForEdit

getColumnCount

public int getColumnCount()
Specified by:
getColumnCount in interface javax.swing.table.TableModel

getColumnName

public java.lang.String getColumnName(int columnIndex)
Specified by:
getColumnName in interface javax.swing.table.TableModel
Overrides:
getColumnName in class javax.swing.table.AbstractTableModel

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
Specified by:
getColumnClass in interface javax.swing.table.TableModel
Overrides:
getColumnClass in class javax.swing.table.AbstractTableModel

getRowCount

public int getRowCount()
Specified by:
getRowCount in interface javax.swing.table.TableModel

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Specified by:
isCellEditable in interface javax.swing.table.TableModel
Overrides:
isCellEditable in class javax.swing.table.AbstractTableModel

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)
Specified by:
getValueAt in interface javax.swing.table.TableModel

setValueAt

public void setValueAt(java.lang.Object value,
                       int rowIndex,
                       int columnIndex)
Specified by:
setValueAt in interface javax.swing.table.TableModel
Overrides:
setValueAt in class javax.swing.table.AbstractTableModel

attachPropertyChangeListener

protected void attachPropertyChangeListener(java.lang.Object entry)
attach this as a property change listener


detachPropertyChangeListener

protected void detachPropertyChangeListener(java.lang.Object entry)
Detach property change listeners

Parameters:
entry -

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Handle a property change so that is fires a TableCellUpdated The PCE may not be on the EDT, if that is the case this method moves the table-event onto the EDT using invokeAndWait

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

initPropertyChangeListener

protected void initPropertyChangeListener(java.lang.Object entry)
Initialize property change listener

Parameters:
entry -


Copyright © 2010. All Rights Reserved.