org.salespointframework.desktop.models
Class UserListModel

java.lang.Object
  extended by javax.swing.AbstractListModel
      extended by org.salespointframework.desktop.models.UserListModel
All Implemented Interfaces:
java.io.Serializable, java.util.EventListener, javax.swing.ListModel, DatasourceChangeListener, HelpableListener, UserDataListener, FilterableModel
Direct Known Subclasses:
UserComboBoxModel

public class UserListModel
extends javax.swing.AbstractListModel
implements UserDataListener, HelpableListener, FilterableModel

A ListModel modelling the set or a subset of users managed by a UserManager.

Since:
v2.0
Version:
2.0 05/05/1999
Author:
Steffen Zschaler
See Also:
UserManager, User, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.salespointframework.desktop.models.FilterableModel
FilterableModel.DefaultModelFilter, FilterableModel.ModelFilter, FilterableModel.ResultCountListener
 
Field Summary
protected  boolean categorize
           
protected  Category defaultCategory
           
protected  java.util.Comparator<User> m_cmpComparator
          A Comparator that orders the users.
protected  java.util.List<java.lang.Object> m_lUsers
          A local copy of the list of users to provide easy and consistent access via an index.
protected  UserFilter m_ufFilter
          A filter that defines the subset of users that are displayed.
protected  UserManager m_um
          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.AbstractListModel
listenerList
 
Constructor Summary
UserListModel()
          Create a new UserListModel modelling the global UserManager.
UserListModel(UserFilter uf, java.util.Comparator<User> cmp)
          Create a new UserListModel modelling the global UserManager.
UserListModel(UserManager um)
          Create a new UserListModel modelling a given UserManager.
UserListModel(UserManager um, UserFilter uf, java.util.Comparator<User> cmp)
          Create a new UserListModel modeling a given UserManager.
UserListModel(UserManager um, UserFilter uf, java.util.Comparator<User> cmp, boolean categorize, Category defaultCategory)
          Create a new UserListModel modeling a given UserManager.
 
Method Summary
 boolean addResultCountListener(FilterableModel.ResultCountListener rcs)
          add ResultCountListener
 void DatasourceChanged(boolean pumpUp)
          Datasource changed. invalidate internal structures and pump up the event
 void filterPropertyChanged()
          apply new filter settings and reload items
protected  void fireResultCountChanged(int count)
          trigger result count changed event
 java.lang.Object getElementAt(int nIndex)
          Get a user by index.
 int getSize()
          Return the number of users in the model.
protected  boolean isFirstInCategory(int index)
           
 void removeResultCountListener(FilterableModel.ResultCountListener rcs)
          remove ResultCountListener
 void setModelFilter(FilterableModel.ModelFilter modelFilter)
          apply new model filter and reload items
 void subscribe()
          Subscribe to the UserManager to be informed of any changes in its set of users.
 void unsubscribe()
          Unsubscribe from the UserManager as there is no need to listen to it anymore, as we are not listened to anymore.
 void updateModel()
          Update the internal model.
 void userAdded(UserDataEvent e)
          Respond to the userAdded event by updating the internal model and forwarding a translated version of the event to anyone who listens to us.
 void userDataChanged(UserDataEvent e)
          update user cell
 void userDeleted(UserDataEvent e)
          Respond to the userDeleted event by updating the internal model and forwarding a translated version of the event to anyone who listens to us.
 
Methods inherited from class javax.swing.AbstractListModel
addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_lUsers

protected java.util.List<java.lang.Object> m_lUsers
A local copy of the list of users to provide easy and consistent access via an index. This model is kept up to date by registering as a listener with the UserManager.


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
A Comparator that orders the users. By default, users are ordered by their name.


m_ufFilter

protected UserFilter m_ufFilter
A filter that defines the subset of users that are displayed. If null no filtering will occur.


m_um

protected UserManager m_um
The UserManager that is being modelled.


categorize

protected boolean categorize

defaultCategory

protected Category defaultCategory
Constructor Detail

UserListModel

public UserListModel()
Create a new UserListModel modelling the global UserManager. All Users will be displayed and they will be sorted by their names.


UserListModel

public UserListModel(UserFilter uf,
                     java.util.Comparator<User> cmp)
Create a new UserListModel modelling the global UserManager.

Parameters:
uf - a filter that defines the set of users to be displayed. If null, no filtering will occur.
cmp - a Comparator that defines the order of the users to be displayed. The objects to be compared by this comparator will be Users. If null, users will be ordered by their names.

UserListModel

public UserListModel(UserManager um)
Create a new UserListModel modelling a given UserManager. All Users will be displayed and they will be sorted by their names.

Parameters:
um - the UserManager to be modelled.

UserListModel

public UserListModel(UserManager um,
                     UserFilter uf,
                     java.util.Comparator<User> cmp)
Create a new UserListModel modeling a given UserManager.

Parameters:
um - the UserManager to be modeled.
uf - a filter that defines the set of users to be displayed. If null, no filtering will occur.
cmp - a Comparator that defines the order of the users to be displayed. The objects to be compared by this comparator will be Users. If null, users will be ordered by their names.

UserListModel

public UserListModel(UserManager um,
                     UserFilter uf,
                     java.util.Comparator<User> cmp,
                     boolean categorize,
                     Category defaultCategory)
Create a new UserListModel modeling a given UserManager.

Parameters:
um - the UserManager to be modeled.
uf - a filter that defines the set of users to be displayed. If null, no filtering will occur.
cmp - a Comparator that defines the order of the users to be displayed. The objects to be compared by this comparator will be Users. If null, users will be ordered by their names.
categorize - if true, listview will display categories
defaultCategory - category for items without category set
Method Detail

getSize

public int getSize()
Return the number of users in the model.

Specified by:
getSize in interface javax.swing.ListModel
Returns:
the number of users in the model.

getElementAt

public java.lang.Object getElementAt(int nIndex)
Get a user by index.

Specified by:
getElementAt in interface javax.swing.ListModel
Parameters:
nIndex - the index of the user to be returned.
Returns:
the user associated with the given index.

userAdded

public void userAdded(UserDataEvent e)
Respond to the userAdded event by updating the internal model and forwarding a translated version of the event to anyone who listens to us.

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

userDeleted

public void userDeleted(UserDataEvent e)
Respond to the userDeleted event by updating the internal model and forwarding a translated version of the event to anyone who listens to us.

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

isFirstInCategory

protected boolean isFirstInCategory(int index)

updateModel

public void updateModel()
Update the internal model.

Specified by:
updateModel in interface HelpableListener

subscribe

public void subscribe()
Subscribe to the UserManager to be informed of any changes in its set of users.

Specified by:
subscribe in interface HelpableListener

unsubscribe

public void unsubscribe()
Unsubscribe from the UserManager as there is no need to listen to it anymore, as we are not listened to anymore. From now on we are working in "poll-mode" until any listener indicates an interest in us again.

Specified by:
unsubscribe in interface HelpableListener

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

fireResultCountChanged

protected void fireResultCountChanged(int count)
trigger result count changed event

Parameters:
count - new count

addResultCountListener

public boolean addResultCountListener(FilterableModel.ResultCountListener rcs)
add 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 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

userDataChanged

public void userDataChanged(UserDataEvent e)
update user cell

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