Package org.astrogrid.samp.gui

# Class SelectiveClientListModel

java.lang.Object
javax.swing.AbstractListModel
org.astrogrid.samp.gui.SelectiveClientListModel

All Implemented Interfaces:
  `Serializable`, `ListModel`

Direct Known Subclasses:
  `SubscribedClientListModel`

public abstract class SelectiveClientListModel extends AbstractListModel
ListModel implementation which sits on top of an existing ListModel containing `Client`s, but only includes a subset of its elements.

Concrete subclasses must

1. implement the `isIncluded(org.astrogrid.samp.Client)` method to determine which clients from the base list appear in this one
2. 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 inherited from class javax.swing.AbstractListModel

`listenerList`

## Constructor Summary

Constructors
Constructor
Description
`SelectiveClientListModel(ListModel clientListModel)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Releases any resources associated with this transmitter.
`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.

### 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`

## Constructor Details

### SelectiveClientListModel

public SelectiveClientListModel(ListModel clientListModel)
Constructor.

Parameters:
  `clientListModel` - base ListModel containing `Client` objects

## Method Details

### 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 from `isIncluded(org.astrogrid.samp.Client)` might have changed for some of the elements.

### getSize

public int getSize()

### getElementAt

public Object getElementAt(int index)

### dispose

public void dispose()
Releases any resources associated with this transmitter.