FileDocCategorySizeDatePackage
AbstractListModel.javaAPI DocJava SE 5 API7108Fri Aug 26 14:57:52 BST 2005javax.swing

AbstractListModel

public abstract class AbstractListModel extends Object implements Serializable, ListModel
The abstract definition for the data model that provides a List with its contents.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

version
1.34 05/05/04
author
Hans Muller

Fields Summary
protected EventListenerList
listenerList
Constructors Summary
Methods Summary
public voidaddListDataListener(javax.swing.event.ListDataListener l)
Adds a listener to the list that's notified each time a change to the data model occurs.

param
l the ListDataListener to be added



                                   
        
	listenerList.add(ListDataListener.class, l);
    
protected voidfireContentsChanged(java.lang.Object source, int index0, int index1)
AbstractListModel subclasses must call this method after one or more elements of the list change. The changed elements are specified by the closed interval index0, index1 -- the endpoints are included. Note that index0 need not be less than or equal to index1.

param
source the ListModel that changed, typically "this"
param
index0 one end of the new interval
param
index1 the other end of the new interval
see
EventListenerList
see
DefaultListModel

	Object[] listeners = listenerList.getListenerList();
	ListDataEvent e = null;

	for (int i = listeners.length - 2; i >= 0; i -= 2) {
	    if (listeners[i] == ListDataListener.class) {
		if (e == null) {
		    e = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED, index0, index1);
		}
		((ListDataListener)listeners[i+1]).contentsChanged(e);
	    }	       
	}
    
protected voidfireIntervalAdded(java.lang.Object source, int index0, int index1)
AbstractListModel subclasses must call this method after one or more elements are added to the model. The new elements are specified by a closed interval index0, index1 -- the enpoints are included. Note that index0 need not be less than or equal to index1.

param
source the ListModel that changed, typically "this"
param
index0 one end of the new interval
param
index1 the other end of the new interval
see
EventListenerList
see
DefaultListModel

	Object[] listeners = listenerList.getListenerList();
	ListDataEvent e = null;

	for (int i = listeners.length - 2; i >= 0; i -= 2) {
	    if (listeners[i] == ListDataListener.class) {
		if (e == null) {
		    e = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED, index0, index1);
		}
		((ListDataListener)listeners[i+1]).intervalAdded(e);
	    }	       
	}
    
protected voidfireIntervalRemoved(java.lang.Object source, int index0, int index1)
AbstractListModel subclasses must call this method after one or more elements are removed from the model. 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.

param
source the ListModel that changed, typically "this"
param
index0 one end of the removed interval, including index0
param
index1 the other end of the removed interval, including index1
see
EventListenerList
see
DefaultListModel

	Object[] listeners = listenerList.getListenerList();
	ListDataEvent e = null;

	for (int i = listeners.length - 2; i >= 0; i -= 2) {
	    if (listeners[i] == ListDataListener.class) {
		if (e == null) {
		    e = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED, index0, index1);
		}
		((ListDataListener)listeners[i+1]).intervalRemoved(e);
	    }	       
	}
    
public javax.swing.event.ListDataListener[]getListDataListeners()
Returns an array of all the list data listeners registered on this AbstractListModel.

return
all of this model's ListDataListeners, or an empty array if no list data listeners are currently registered
see
#addListDataListener
see
#removeListDataListener
since
1.4

        return (ListDataListener[])listenerList.getListeners(
                ListDataListener.class);
    
public T[]getListeners(java.lang.Class listenerType)
Returns an array of all the objects currently registered as FooListeners upon this model. FooListeners are registered using the addFooListener method.

You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a list model m for its list data listeners with the following code:

ListDataListener[] ldls = (ListDataListener[])(m.getListeners(ListDataListener.class));
If no such listeners exist, this method returns an empty array.

param
listenerType the type of listeners requested; this parameter should specify an interface that descends from java.util.EventListener
return
an array of all objects registered as FooListeners on this model, or an empty array if no such listeners have been added
exception
ClassCastException if listenerType doesn't specify a class or interface that implements java.util.EventListener
see
#getListDataListeners
since
1.3

	return listenerList.getListeners(listenerType); 
    
public voidremoveListDataListener(javax.swing.event.ListDataListener l)
Removes a listener from the list that's notified each time a change to the data model occurs.

param
l the ListDataListener to be removed

	listenerList.remove(ListDataListener.class, l);