KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > app > list > AbstractListModel


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29 package nextapp.echo2.app.list;
30
31 import java.io.Serializable JavaDoc;
32 import java.util.EventListener JavaDoc;
33
34 import nextapp.echo2.app.event.EventListenerList;
35 import nextapp.echo2.app.event.ListDataEvent;
36 import nextapp.echo2.app.event.ListDataListener;
37
38 /**
39  * A base class from which <code>ListModel</code> implementations may be
40  * derived. This class provides event listener management facilities.
41  */

42 public abstract class AbstractListModel
43 implements ListModel, Serializable JavaDoc {
44
45     /**
46      * A storage facility for <code>EventListener</code>s.
47      */

48     private EventListenerList listenerList = new EventListenerList();
49  
50     /**
51      * Creates a new AbstractListModel.
52      */

53     public AbstractListModel() {
54         super();
55     }
56  
57     /**
58      * @see nextapp.echo2.app.list.ListModel#addListDataListener(nextapp.echo2.app.event.ListDataListener)
59      */

60     public void addListDataListener(ListDataListener l) {
61         listenerList.addListener(ListDataListener.class, l);
62     }
63     
64     /**
65      * Returns the <code>EventListenerList</code> being used to manage event
66      * listeners.
67      *
68      * @return the listener list
69      */

70     protected EventListenerList getEventListenerList() {
71         return listenerList;
72     }
73
74     /**
75      * Notifies listeners that the contents of the list have changed.
76      * Subclasses <strong>must</strong> call this method
77      * after one or elements are changed.
78      *
79      * @param index0 the index of the first changed item
80      * @param index1 the index of the last changed item
81      */

82     protected void fireContentsChanged(int index0, int index1) {
83         ListDataEvent e = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, index0, index1);
84
85         EventListener JavaDoc[] listeners = listenerList.getListeners(ListDataListener.class);
86         for (int index = 0; index < listeners.length; ++index) {
87             ((ListDataListener) listeners[index]).contentsChanged(e);
88         }
89     }
90     
91     /**
92      * Notifies listeners that an interval of items was added.
93      * Subclasses <strong>must</strong> call this method
94      * after one or elements are added.
95      *
96      * @param index0 the index of the first added item
97      * @param index1 the index of the last added item
98      */

99     protected void fireIntervalAdded(int index0, int index1) {
100         ListDataEvent e = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, index0, index1);
101
102         EventListener JavaDoc[] listeners = listenerList.getListeners(ListDataListener.class);
103         for (int index = 0; index < listeners.length; ++index) {
104             ((ListDataListener) listeners[index]).intervalAdded(e);
105         }
106     }
107     
108     /**
109      * Notifies listeners that an interval of items was removed.
110      * Subclasses <strong>must</strong> call this method
111      * after one or elements are removed.
112      *
113      * @param index0 the index of the first removed index
114      * @param index1 the index of the last removed index
115      */

116     protected void fireIntervalRemoved(int index0, int index1) {
117         ListDataEvent e = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, index0, index1);
118
119         EventListener JavaDoc[] listeners = listenerList.getListeners(ListDataListener.class);
120         for (int index = 0; index < listeners.length; ++index) {
121             ((ListDataListener) listeners[index]).intervalRemoved(e);
122         }
123     }
124
125     /**
126      * @see nextapp.echo2.app.list.ListModel#removeListDataListener(nextapp.echo2.app.event.ListDataListener)
127      */

128     public void removeListDataListener(ListDataListener l) {
129         listenerList.removeListener(ListDataListener.class, l);
130     }
131 }
132
Popular Tags