org.salespointframework.desktop.models
Class UserTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by org.salespointframework.desktop.models.AbstractTableModel
          extended by org.salespointframework.desktop.models.UserTableModel
All Implemented Interfaces:
java.io.Serializable, java.util.EventListener, javax.swing.table.TableModel, DatasourceChangeListener, HelpableListener, UserDataListener, FilterableModel

public class UserTableModel
extends AbstractTableModel
implements UserDataListener, HelpableListener, FilterableModel

A TableModel that models the contents of a UserManager.

Since:
v3.0
Version:
3.0 12/06/2001
Author:
Thomas Medack
See Also:
Serialized Form

Nested Class Summary
static class UserTableModel.UserComparator
          This abstract class is a special Comparator, which compares Users.
 
Nested classes/interfaces inherited from interface org.salespointframework.desktop.models.FilterableModel
FilterableModel.DefaultModelFilter, FilterableModel.ModelFilter, FilterableModel.ResultCountListener
 
Field Summary
protected  java.util.Comparator<User> m_cmpComparator
          The Comparator that defines the sorting order of records in the model.
protected  java.util.List<User> m_lKeys
          The internal model.
protected  UserManager m_umManager
          The UserManager that is being modelled.
protected  FilterableModel.ModelFilter modelFilter
          model filter
protected  java.util.List<FilterableModel.ResultCountListener> resultCountListeners
          list of result count listeners
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
UserTableModel(UserManager u, java.util.Comparator<User> cmp, TableEntryDescriptor ted)
          Create a new UserTableModel.
 
Method Summary
 boolean addResultCountListener(FilterableModel.ResultCountListener rcs)
          add FilterableModel.ResultCountListener
 void DatasourceChanged(boolean pumpUp)
          Datasource changed.
 void filterPropertyChanged()
          apply new filter settings and reload items
 java.lang.Object getRecord(int row)
          Get the record at the given index.
 int getRowCount()
          Get the number of records in this model.
 void removeResultCountListener(FilterableModel.ResultCountListener rcs)
          remove FilterableModel.ResultCountListener
 void setData(java.lang.Object n_umManager)
          Set the table's data.
 void setModelFilter(FilterableModel.ModelFilter modelFilter)
          apply new model filter and reload items
 void subscribe()
          Subscribe as a listener to the model.
 void unsubscribe()
          Un-Subscribe as a listener from the model.
 void updateModel()
          Update the internal model based on the modelled UserManager.
 void userAdded(UserDataEvent e)
          Called whenever a user was added to the source.
 void userDataChanged(UserDataEvent e)
          update user record
 void userDeleted(UserDataEvent e)
          Called whenever a user was deleted from the source.
 
Methods inherited from class org.salespointframework.desktop.models.AbstractTableModel
getColumnClass, getColumnCount, getColumnName, getEntryDescriptor, getValueAt, isCellEditable, orderByColumn, reOrderBy, setValueAt
 
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
 

Field Detail

m_umManager

protected UserManager m_umManager
The UserManager that is being modelled.


resultCountListeners

protected java.util.List<FilterableModel.ResultCountListener> resultCountListeners
list of result count listeners


modelFilter

protected FilterableModel.ModelFilter modelFilter
model filter


m_cmpComparator

protected java.util.Comparator<User> m_cmpComparator
The Comparator that defines the sorting order of records in the model. It compares Users.


m_lKeys

protected java.util.List<User> m_lKeys
The internal model. A list of the Users' names.

Constructor Detail

UserTableModel

public UserTableModel(UserManager u,
                      java.util.Comparator<User> cmp,
                      TableEntryDescriptor ted)
Create a new UserTableModel.

Parameters:
u - the UserManager to be modelled.
cmp - a Comparator defining the sort order of the records. If null, records are ordered according to the natural ordering of the Users.
ted - a TableEntryDescriptor that can split individual Users into a table's cells.
Method Detail

setData

public void setData(java.lang.Object n_umManager)
Set the table's data. Data is UserManager

Specified by:
setData in class AbstractTableModel
Parameters:
n_umManager - the new data

getRecord

public java.lang.Object getRecord(int row)
Get the record at the given index.

Specified by:
getRecord in class AbstractTableModel
Parameters:
row - the index for which to retrieve the record. Element of [0, getRowCount()).
Returns:
the User to be displayed at the given index. May return null if either there is no record at the indicated position or an exception occurs.

getRowCount

public int getRowCount()
Get the number of records in this model.

Specified by:
getRowCount in interface javax.swing.table.TableModel

subscribe

public void subscribe()
Subscribe as a listener to the model.

Specified by:
subscribe in interface HelpableListener

unsubscribe

public void unsubscribe()
Un-Subscribe as a listener from the model.

Specified by:
unsubscribe in interface HelpableListener

updateModel

public void updateModel()
Update the internal model based on the modelled UserManager.

Specified by:
updateModel in interface HelpableListener

userAdded

public void userAdded(UserDataEvent e)
Description copied from interface: UserDataListener
Called whenever a user was added to the source. The new user will be contained in the event object.

Specified by:
userAdded in interface UserDataListener
Parameters:
e - the event object describing the event.

userDeleted

public void userDeleted(UserDataEvent e)
Description copied from interface: UserDataListener
Called whenever a user was deleted from the source. The deleted user will be contained in the event object.

Specified by:
userDeleted in interface UserDataListener
Parameters:
e - the event object describing the event.

DatasourceChanged

public void DatasourceChanged(boolean pumpUp)
Datasource changed. Invalidate internal structures and pump up the event

Specified by:
DatasourceChanged in interface DatasourceChangeListener
Parameters:
pumpUp - true if the event should be pumped up to hosts, because this event is mostly triggered twice. first time to invalidate caches. second time for load new data

userDataChanged

public void userDataChanged(UserDataEvent e)
update user record

Specified by:
userDataChanged in interface UserDataListener
Parameters:
e - event information

addResultCountListener

public boolean addResultCountListener(FilterableModel.ResultCountListener rcs)
add FilterableModel.ResultCountListener

Specified by:
addResultCountListener in interface FilterableModel
Returns:
true, on success

filterPropertyChanged

public void filterPropertyChanged()
apply new filter settings and reload items

Specified by:
filterPropertyChanged in interface FilterableModel

removeResultCountListener

public void removeResultCountListener(FilterableModel.ResultCountListener rcs)
remove FilterableModel.ResultCountListener

Specified by:
removeResultCountListener in interface FilterableModel

setModelFilter

public void setModelFilter(FilterableModel.ModelFilter modelFilter)
apply new model filter and reload items

Specified by:
setModelFilter in interface FilterableModel
Parameters:
modelFilter - new model filter