dsto.dfc.swing.list
Class ListModelAdapter

java.lang.Object
  extended by javax.swing.AbstractListModel
      extended by dsto.dfc.swing.list.ListModelAdapter
All Implemented Interfaces:
CollectionListener, DfcListModel, Disposable, Serializable, EventListener, ListModel

public class ListModelAdapter
extends AbstractListModel
implements DfcListModel, CollectionListener, Disposable

Adapts a List to look like a Swing ListModel. Implementes the DfcListModel interface to support row add and remove. Supports automatic update for dynamic List's (MonitoredList).

Version:
$Revision$
Author:
Matthew Phillips
See Also:
Serialized Form

Field Summary
protected  List list
           
 
Fields inherited from class javax.swing.AbstractListModel
listenerList
 
Constructor Summary
ListModelAdapter(List list)
           
ListModelAdapter(List list, boolean copyOnEdit)
          Create a new instance.
 
Method Summary
 void addEntry(Object entry, int row)
          Add an entry can at a given row.
 boolean canAddEntry(Object entry, int row)
          Test if an entry can be added at a given row.
 boolean canRemoveEntry(int row)
          Test if an entry can be removed.
 boolean canReplaceEntry(Object entry, int row)
          Test if an entry can be replaced.
 void dispose()
          Dispose of the object (unregister listeners, close open resources etc).
 void elementsAdded(CollectionEvent e)
           
 void elementsRemoved(CollectionEvent e)
           
 Object getElementAt(int index)
           
 int getSize()
           
 int indexOf(Object entry)
          Find the first occurrence of an entry and return its index.
 boolean isMutable()
          Test if this model is mutable (can be changed).
protected  void maybeCopyList()
           
 Object removeEntry(int row)
          Remove an entry at a given row.
 Object replaceEntry(Object entry, int row)
          Replace an entry can at a given row.
 
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
 
Methods inherited from interface javax.swing.ListModel
addListDataListener, removeListDataListener
 

Field Detail

list

protected List list
Constructor Detail

ListModelAdapter

public ListModelAdapter(List list)

ListModelAdapter

public ListModelAdapter(List list,
                        boolean copyOnEdit)
Create a new instance.

Parameters:
list - The list to adapt to the ListModel interface.
copyOnEdit - True if the list should be copied (via clone ()) before any edit operations.
Method Detail

dispose

public void dispose()
Description copied from interface: Disposable
Dispose of the object (unregister listeners, close open resources etc). It should be safe to call this method more than once. Note for beans that support client event listeners: if there are listeners registered when this is called, this method should do nothing.

Specified by:
dispose in interface Disposable

getSize

public int getSize()
Specified by:
getSize in interface ListModel

getElementAt

public Object getElementAt(int index)
Specified by:
getElementAt in interface ListModel

isMutable

public boolean isMutable()
Description copied from interface: DfcListModel
Test if this model is mutable (can be changed).

Specified by:
isMutable in interface DfcListModel
Returns:
True if the list can be changed.

indexOf

public int indexOf(Object entry)
Description copied from interface: DfcListModel
Find the first occurrence of an entry and return its index.

Specified by:
indexOf in interface DfcListModel
Returns:
The index of entry or -1 if not found.

canReplaceEntry

public boolean canReplaceEntry(Object entry,
                               int row)
Description copied from interface: DfcListModel
Test if an entry can be replaced.

Specified by:
canReplaceEntry in interface DfcListModel
Parameters:
entry - The entry to add.
row - The row to overwrite.
Returns:
True if entry can be replaced.
See Also:
DfcListModel.replaceEntry(java.lang.Object, int)

replaceEntry

public Object replaceEntry(Object entry,
                           int row)
                    throws IndexOutOfBoundsException,
                           UnsupportedOperationException
Description copied from interface: DfcListModel
Replace an entry can at a given row.

Specified by:
replaceEntry in interface DfcListModel
Parameters:
entry - The entry to add.
row - The row to overwrite.
Returns:
The old value at row.
Throws:
IndexOutOfBoundsException - if row is out of bounds.
UnsupportedOperationException - if entry is not allowed to be replaced.
See Also:
DfcListModel.canReplaceEntry(java.lang.Object, int)

canAddEntry

public boolean canAddEntry(Object entry,
                           int row)
Description copied from interface: DfcListModel
Test if an entry can be added at a given row.

Specified by:
canAddEntry in interface DfcListModel
Parameters:
entry - The entry to add.
row - The row to add the new entry.
Returns:
True if entry can be added at row.
See Also:
DfcListModel.addEntry(java.lang.Object, int)

addEntry

public void addEntry(Object entry,
                     int row)
              throws IndexOutOfBoundsException,
                     UnsupportedOperationException
Description copied from interface: DfcListModel
Add an entry can at a given row.

Specified by:
addEntry in interface DfcListModel
Parameters:
entry - The entry to add.
row - The row to add the new entry.
Throws:
IndexOutOfBoundsException - if row is out of bounds.
UnsupportedOperationException - if entry is not allowed to be added.
See Also:
DfcListModel.canAddEntry(java.lang.Object, int)

canRemoveEntry

public boolean canRemoveEntry(int row)
Description copied from interface: DfcListModel
Test if an entry can be removed.

Specified by:
canRemoveEntry in interface DfcListModel
Parameters:
row - The row to be removed.
Returns:
True if row can be removed.
See Also:
DfcListModel.removeEntry(int)

removeEntry

public Object removeEntry(int row)
                   throws IndexOutOfBoundsException,
                          UnsupportedOperationException
Description copied from interface: DfcListModel
Remove an entry at a given row.

Specified by:
removeEntry in interface DfcListModel
Parameters:
row - The row to remove.
Returns:
The entry that was removed.
Throws:
IndexOutOfBoundsException - if row is out of bounds.
UnsupportedOperationException - if entry is not allowed to be removed.
See Also:
DfcListModel.canRemoveEntry(int)

maybeCopyList

protected void maybeCopyList()
                      throws UnsupportedOperationException
Throws:
UnsupportedOperationException

elementsAdded

public void elementsAdded(CollectionEvent e)
Specified by:
elementsAdded in interface CollectionListener

elementsRemoved

public void elementsRemoved(CollectionEvent e)
Specified by:
elementsRemoved in interface CollectionListener


Copyright © 2008 Commonwealth of Australia