KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > data > util > AbstractColumnProjection


1 package prefuse.data.util;
2
3 import prefuse.data.event.ProjectionListener;
4 import prefuse.util.collections.CopyOnWriteArrayList;
5
6 /**
7  * Abstract base class for column projection instances. Implements the
8  * listener functionality.
9  *
10  * @author <a HREF="http://jheer.org">jeffrey heer</a>
11  */

12 public abstract class AbstractColumnProjection implements ColumnProjection {
13
14     // ------------------------------------------------------------------------
15
// Listener Methods
16

17     private CopyOnWriteArrayList m_listeners;
18     
19     /**
20      * @see prefuse.data.util.ColumnProjection#addProjectionListener(prefuse.data.event.ProjectionListener)
21      */

22     public void addProjectionListener(ProjectionListener lstnr) {
23         if ( m_listeners == null )
24             m_listeners = new CopyOnWriteArrayList();
25         if ( !m_listeners.contains(lstnr) )
26             m_listeners.add(lstnr);
27     }
28
29     /**
30      * @see prefuse.data.util.ColumnProjection#removeProjectionListener(prefuse.data.event.ProjectionListener)
31      */

32     public void removeProjectionListener(ProjectionListener lstnr) {
33         if ( m_listeners != null )
34             m_listeners.remove(lstnr);
35         if ( m_listeners.size() == 0 )
36             m_listeners = null;
37     }
38     
39     public void fireUpdate() {
40         if ( m_listeners == null )
41             return;
42         Object JavaDoc[] lstnrs = m_listeners.getArray();
43         for ( int i=0; i<lstnrs.length; ++i ) {
44             ((ProjectionListener)lstnrs[i]).projectionChanged(this);
45         }
46     }
47     
48 } // end of abstract class AbstractColumnProjection
49
Popular Tags