View Javadoc
1   /*
2    * Copyright (c) 2005, The JUNG Authors
3    * All rights reserved.
4    * 
5    * This software is open-source under the BSD license; see either "license.txt"
6    * or https://github.com/jrtom/jung/blob/master/LICENSE for a description.
7    * 
8    *
9    * Created on Apr 2, 2005
10   */
11  package edu.uci.ics.jung.visualization.picking;
12  
13  import java.awt.event.ItemEvent;
14  import java.awt.event.ItemListener;
15  
16  import javax.swing.event.EventListenerList;
17  
18  /**
19   * An abstract class to support ItemEvents for PickedState
20   * 
21   * @author Tom Nelson
22   */
23  public abstract class AbstractPickedState<T> implements PickedState<T> {
24      
25      protected EventListenerList listenerList = new EventListenerList();
26  
27      public void addItemListener(ItemListener l) {
28          listenerList.add(ItemListener.class, l);
29          
30      }
31  
32      public void removeItemListener(ItemListener l) {
33          listenerList.remove(ItemListener.class, l);
34      }
35      
36      protected void fireItemStateChanged(ItemEvent e) {
37          Object[] listeners = listenerList.getListenerList();
38          for ( int i = listeners.length-2; i>=0; i-=2 ) {
39              if ( listeners[i]==ItemListener.class ) {
40                  ((ItemListener)listeners[i+1]).itemStateChanged(e);
41              }
42          }
43      }   
44  }