/[classpath]/classpath/javax/swing/AbstractListModel.java
ViewVC logotype

Diff of /classpath/javax/swing/AbstractListModel.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by mark, Tue Apr 30 21:37:27 2002 UTC revision 1.3 by aselkirk, Tue May 21 03:14:54 2002 UTC
# Line 1  Line 1 
1  /* AbstractListModel.java --  /* AbstractListModel.java --
2     Copyright (C) 2002 Free Software Foundation, Inc.     Copyright (C) 2002 Free Software Foundation, Inc.
3    
4  This file is part of GNU Classpath.  This file is part of GNU Classpath.
# Line 37  exception statement from your version. * Line 37  exception statement from your version. *
37    
38  package javax.swing;  package javax.swing;
39    
40  import javax.swing.event.*;  // Imports
41    import java.io.*;
42  import java.util.*;  import java.util.*;
43    import javax.swing.event.*;
44    
45  // fire up change events before or after  /**
46  // the element removed/added ?   * AbstractListModel
47     * A2uthor      Ronald Veldema
48  public class AbstractListModel implements ListModel   * @author      Andrew Selkirk
49  {   * @version     1.0
50      Vector elts      = new Vector();   */
51        public abstract class AbstractListModel implements ListModel, Serializable {
52      public int getSize()  
53      {          //-------------------------------------------------------------
54          return elts.size();          // Variables --------------------------------------------------
55      }          //-------------------------------------------------------------
56        
57      public Object getElementAt(int index)          /**
58      {           * listenerList
59          return elts.elementAt(index);           */
60      }          protected EventListenerList listenerList = new EventListenerList();
61        
62      public void addElement(Object a)  
63      {          //-------------------------------------------------------------
64          int q = elts.size();          // Initialization ---------------------------------------------
65          elts.addElement(a);          //-------------------------------------------------------------
66          fire_up_change_events(ListDataEvent.INTERVAL_ADDED,  
67                                q,          /**
68                                q);           * Constructor AbstractListModel
69      }           */
70            public AbstractListModel() {
71      public void insertElementAt(Object a, int index)          } // AbstractListModel()
72      {  
73          elts.insertElementAt(a, index);  
74          fire_up_change_events(ListDataEvent.INTERVAL_ADDED,          //-------------------------------------------------------------
75                                index, index);          // Methods ----------------------------------------------------
76      }          //-------------------------------------------------------------
77        
78      void remove(int a)          /**
79      {           * addListDataListener
80          elts.removeElementAt(a);           * @param listener TODO
81          fire_up_change_events(ListDataEvent.INTERVAL_REMOVED,           */
82                                a, a);          public void addListDataListener(ListDataListener listener) {
83      }                  listenerList.add(ListDataListener.class, (EventListener) listener);
84            } // addListDataListener()
85      /*********************************************  
86       *          /**
87       *  handle data change events           * removeListDataListener
88       *           * @param listener TODO
89       ************/           */
90            public void removeListDataListener(ListDataListener listener) {
91      Vector listeners = new Vector();                  listenerList.remove(ListDataListener.class, (EventListener) listener);
92            } // removeListDataListener()
93      void fire_up_change_events(int type,  
94                                 int lower,          /**
95                                 int upper)           * fireContentsChanged
96      {           * @param source TODO
97          for (int i=0; i<listeners.size(); i++)           * @param startIndex TODO
98              {           * @param endIndex TODO
99                  ListDataListener l = (ListDataListener) listeners.get(i);           */
100            protected void fireContentsChanged(Object source, int startIndex, int endIndex) {
101                  l.contentsChanged(new ListDataEvent(this,  
102                                                      type,                  // Variables
103                                                      lower,                  ListDataEvent   event;
104                                                      upper));                  EventListener[]         listeners;
105              }                  ListDataListener        listener;
106      }                  int                                     index;
107    
108      public void addListDataListener(ListDataListener l)                  // Create Event
109      {                  event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED,
110          listeners.addElement(l);                                          startIndex, endIndex);
111      }  
112                    // Get Listeners
113      public void removeListDataListener(ListDataListener l)                  listeners = listenerList.getListeners(ListDataListener.class);
114      {  
115          listeners.removeElement(l);                  // Process Listeners
116      }                  for (index = 0; index < listeners.length; index++) {
117  }                          listener = (ListDataListener) listeners[index];
118                            listener.contentsChanged(event);
119                    } // for
120    
121            } // fireContentsChanged()
122    
123            /**
124             * fireIntervalAdded
125             * @param source TODO
126             * @param startIndex TODO
127             * @param endIndex TODO
128             */
129            protected void fireIntervalAdded(Object source, int startIndex, int endIndex) {
130    
131                    // Variables
132                    ListDataEvent   event;
133                    EventListener[]         listeners;
134                    ListDataListener        listener;
135                    int                                     index;
136    
137                    // Create Event
138                    event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED,
139                                            startIndex, endIndex);
140    
141                    // Get Listeners
142                    listeners = listenerList.getListeners(ListDataListener.class);
143    
144                    // Process Listeners
145                    for (index = 0; index < listeners.length; index++) {
146                            listener = (ListDataListener) listeners[index];
147                            listener.intervalAdded(event);
148                    } // for
149    
150            } // fireIntervalAdded()
151    
152            /**
153             * fireIntervalRemoved
154             * @param source TODO
155             * @param startIndex TODO
156             * @param endIndex TODO
157             */
158            protected void fireIntervalRemoved(Object source, int startIndex, int endIndex) {
159    
160                    // Variables
161                    ListDataEvent           event;
162                    EventListener[]         listeners;
163                    ListDataListener        listener;
164                    int                                     index;
165    
166                    // Create Event
167                    event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED,
168                                            startIndex, endIndex);
169    
170                    // Get Listeners
171                    listeners = listenerList.getListeners(ListDataListener.class);
172    
173                    // Process Listeners
174                    for (index = 0; index < listeners.length; index++) {
175                            listener = (ListDataListener) listeners[index];
176                            listener.intervalRemoved(event);
177                    } // for
178    
179            } // fireIntervalRemoved()
180    
181            /**
182             * getListeners
183             * @param listenerType TODO
184             * @returns EventListener[]
185             */
186            public EventListener[] getListeners(Class listenerType) {
187                    return listenerList.getListeners(listenerType);
188            } // getListeners()
189    
190            /**
191             * getElementAt
192             * @param index TODO
193             * @returns Object
194             */
195            public abstract Object getElementAt(int index);
196    
197            /**
198             * getSize
199             * @returns int
200             */
201            public abstract int getSize();
202    
203    
204    } // AbstractListModel

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26