Package org.astrogrid.samp.gui
Class SelectiveClientListModel
- java.lang.Object
-
- javax.swing.AbstractListModel
-
- org.astrogrid.samp.gui.SelectiveClientListModel
-
- All Implemented Interfaces:
java.io.Serializable
,javax.swing.ListModel
- Direct Known Subclasses:
SubscribedClientListModel
public abstract class SelectiveClientListModel extends javax.swing.AbstractListModel
ListModel implementation which sits on top of an existing ListModel containingClient
s, but only includes a subset of its elements.Concrete subclasses must
- implement the
isIncluded(org.astrogrid.samp.Client)
method to determine which clients from the base list appear in this one - call
init()
before the class is used (for instance in their constructor)
- Since:
- 1 Sep 2008
- Author:
- Mark Taylor
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.ListModel
baseModel_
private javax.swing.event.ListDataListener
listDataListener_
private int[]
map_
-
Constructor Summary
Constructors Constructor Description SelectiveClientListModel(javax.swing.ListModel clientListModel)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private int[]
calculateMap()
Recalculates the this list -> base list lookup table.void
dispose()
Releases any resources associated with this transmitter.java.lang.Object
getElementAt(int index)
int
getSize()
protected void
init()
Must be called by subclass prior to use.protected abstract boolean
isIncluded(Client client)
Implement this method to determine which clients are included in this list.protected void
refresh()
Recalculates the inclusions.
-
-
-
Constructor Detail
-
SelectiveClientListModel
public SelectiveClientListModel(javax.swing.ListModel clientListModel)
Constructor.- Parameters:
clientListModel
- base ListModel containingClient
objects
-
-
Method Detail
-
isIncluded
protected abstract boolean isIncluded(Client client)
Implement this method to determine which clients are included in this list.- Parameters:
client
- client for consideration- Returns:
- true iff client is to be included in this list
-
init
protected void init()
Must be called by subclass prior to use.
-
refresh
protected void refresh()
Recalculates the inclusions. This should be called if the return value fromisIncluded(org.astrogrid.samp.Client)
might have changed for some of the elements.
-
getSize
public int getSize()
-
getElementAt
public java.lang.Object getElementAt(int index)
-
dispose
public void dispose()
Releases any resources associated with this transmitter.
-
calculateMap
private int[] calculateMap()
Recalculates the this list -> base list lookup table.- Returns:
- array whose indices represent elements of this list, and values represent elements of the base list
-
-