com.jgoodies.binding.list
Class ListHolder
- ListModel, Observable, Serializable
public class ListHolder
implements ListModel
A ListModel implementation that looks up its elements
from a List held by a ValueModel.
This class provides public convenience methods for firing ListDataEvents,
see the methods
#fireContentsChanged
,
#fireIntervalAdded
, and
#fireIntervalRemoved
.
The current class name "ListHolder" and accessor #getListHolder
may confuse users: what's the difference between the class (a ListModel)
and its list holder (a ValueModel)?
TODO: Find a better name and provide a transition to the new class name.
I consider using "IndirectList" as the new name.
static String | PROPERTYNAME_LIST - The name of the bound read-write list property.
|
static String | PROPERTYNAME_LIST_HOLDER - The name of the bound read-write listHolder property.
|
protected List | list - Holds a copy of the listHolder's value.
|
ListHolder() - Constructs a ListHolder with an empty initial ArrayList.
|
ListHolder(List list) - Constructs a ListHolder on the given List.
|
ListHolder(ValueModel listHolder) - Constructs a ListHolder on the given List.
|
void | addListDataListener(ListDataListener l) - Adds a listener to the list that's notified each time a change
to the data model occurs.
|
void | fireContentsChanged(int index0, int index1) - Notifies all registered ListDataListeners that the contents
of one or more list elements has changed.
|
void | fireIntervalAdded(int index0, int index1) - Notifies all registered ListDataListeners that one or more elements
have been added to this SelectionInList's List/ListModel.
|
void | fireIntervalRemoved(int index0, int index1) - Notifies all registered ListDataListeners that one or more elements
have been removed from this SelectionInList's List/ListModel.
|
protected void | fireListChanged(int oldLastIndex, int newLastIndex) - Notifies all registered ListDataListeners that this ListModel
has changed from an old list to a new list content.
|
Object | getElementAt(int index) - Returns the value at the specified index.
|
List | getList() - Returns the contents of the list holder.
|
ListDataListener[] | getListDataListeners() - Returns an array of all the list data listeners
registered on this
SelectionInList .
|
ValueModel | getListHolder() - Returns the ValueModel that holds the List we delegate to.
|
int | getSize() - Returns the length of the list,
0 if the list
is null .
|
protected int | getSize(List aListOrNull) - Returns the lists size or 0 if the list is null.
|
boolean | isEmpty() - Checks and answers if the list is empty or
null .
|
void | release() - Removes the internal listener from the list holder.
|
void | removeListDataListener(ListDataListener l) - Removes a listener from the list that's notified each time a
change to the data model occurs.
|
void | setList(List newList) - Sets the given List as value of the list holder.
|
void | setListHolder(ValueModel newListHolder) - Sets a new List holder.
|
protected void | updateList(List oldList, List newList) - Fires a property change for list
and a ListModel contents change event.
|
addPropertyChangeListener , addPropertyChangeListener , addVetoableChangeListener , addVetoableChangeListener , equals , fireMultiplePropertiesChanged , firePropertyChange , firePropertyChange , firePropertyChange , firePropertyChange , firePropertyChange , firePropertyChange , firePropertyChange , firePropertyChange , fireVetoableChange , fireVetoableChange , fireVetoableChange , fireVetoableChange , fireVetoableChange , fireVetoableChange , fireVetoableChange , getPropertyChangeListeners , getPropertyChangeListeners , getVetoableChangeListeners , getVetoableChangeListeners , removePropertyChangeListener , removePropertyChangeListener , removeVetoableChangeListener , removeVetoableChangeListener |
PROPERTYNAME_LIST
public static final String PROPERTYNAME_LIST
The name of the bound read-write list property.
PROPERTYNAME_LIST_HOLDER
public static final String PROPERTYNAME_LIST_HOLDER
The name of the bound read-write listHolder property.
list
protected List list
Holds a copy of the listHolder's value. Used as the old List
when the listHolder's value changes. Required because a ValueModel
may use null
as old value, but this ListModelHolder
must know about the old and the new List.
ListHolder
public ListHolder()
Constructs a ListHolder with an empty initial ArrayList.
ListHolder
public ListHolder(List list)
Constructs a ListHolder on the given List.
ListHolder
public ListHolder(ValueModel listHolder)
Constructs a ListHolder on the given List.
listHolder
- provides the List
addListDataListener
public final void addListDataListener(ListDataListener l)
Adds a listener to the list that's notified each time a change
to the data model occurs.
l
- the ListDataListener
to be added
fireContentsChanged
public final void fireContentsChanged(int index0,
int index1)
Notifies all registered ListDataListeners that the contents
of one or more list elements has changed.
The changed elements are specified by the closed interval index0, index1
-- the end points are included. Note that index0 need not be less than
or equal to index1.
index0
- one end of the new intervalindex1
- the other end of the new interval
ListModel
, ListDataListener
, ListDataEvent
fireIntervalAdded
public final void fireIntervalAdded(int index0,
int index1)
Notifies all registered ListDataListeners that one or more elements
have been added to this SelectionInList's List/ListModel.
The new elements are specified by a closed interval index0, index1
-- the end points are included. Note that index0 need not be less than
or equal to index1.
index0
- one end of the new intervalindex1
- the other end of the new interval
ListModel
, ListDataListener
, ListDataEvent
fireIntervalRemoved
public final void fireIntervalRemoved(int index0,
int index1)
Notifies all registered ListDataListeners that one or more elements
have been removed from this SelectionInList's List/ListModel.
index0
and index1
are the end points
of the interval that's been removed. Note that index0
need not be less than or equal to index1
.
index0
- one end of the removed interval,
including index0
index1
- the other end of the removed interval,
including index1
ListModel
, ListDataListener
, ListDataEvent
fireListChanged
protected final void fireListChanged(int oldLastIndex,
int newLastIndex)
Notifies all registered ListDataListeners that this ListModel
has changed from an old list to a new list content.
If the old and new list size differ, a remove or add event for
the removed or added interval is fired. A content change
is reported for the interval common to the old and new list.
This method is invoked by #updateList during the transition
from an old List(Model) to a new List(Model).
The order of the events fired ensures that after each event
the size described by the ListDataEvents equals the ListModel size.
oldLastIndex
- the last index of the old listnewLastIndex
- the last index of the new list
getElementAt
public final Object getElementAt(int index)
Returns the value at the specified index.
index
- the requested index
getList
public final List getList()
Returns the contents of the list holder.
- the contents of the list holder.
getListDataListeners
public final ListDataListener[] getListDataListeners()
Returns an array of all the list data listeners
registered on this SelectionInList
.
- all of this model's
ListDataListener
s,
or an empty array if no list data listeners
are currently registered
getListHolder
public final ValueModel getListHolder()
Returns the ValueModel that holds the List we delegate to.
- the ValueModel that holds the List we delegate to.
getSize
public final int getSize()
Returns the length of the list, 0
if the list
is null
.
- the size of the list,
0
if the list is
null
getSize
protected final int getSize(List aListOrNull)
Returns the lists size or 0 if the list is null.
aListOrNull
- a List or null
- the list's size or 0 if the list is null
isEmpty
public final boolean isEmpty()
Checks and answers if the list is empty or null
.
- true if the list is empty or
null
, false otherwise
release
public void release()
Removes the internal listener from the list holder. This ListHolder
must not be used after calling
#release
.
To avoid memory leaks it is recommended to invoke this method,
if the list holder lives much longer than this ListHolder.
Instead of releasing the ListHolder, you typically make
the list holder obsolete by releasing the PresentationModel
or BeanAdapter that has created it before.
As an alternative you may use ValueModels that in turn use
event listener lists implemented using
WeakReference
.
Basically this release method performs the reverse operation
performed during the ListHolder construction.
removeListDataListener
public final void removeListDataListener(ListDataListener l)
Removes a listener from the list that's notified each time a
change to the data model occurs.
l
- the ListDataListener
to be removed
setList
public final void setList(List newList)
Sets the given List as value of the list holder.
newList
- the List to be set as new list content
setListHolder
public final void setListHolder(ValueModel newListHolder)
Sets a new List holder. Does nothing if old and new holder are equal.
Removes the list change handler from the old holder and adds
it to the new one.
newListHolder
- the list holder to be set
updateList
protected void updateList(List oldList,
List newList)
Fires a property change for list
and a ListModel contents change event.
oldList
- the old ListnewList
- the new List
Copyright © 2002-2007 JGoodies Karsten Lentzsch. All Rights Reserved.