Package ucar.util

Class ListenerManager


  • @ThreadSafe
    public class ListenerManager
    extends Object
    Helper class for managing event listeners. It is thread safe, but better not to be adding/deleting listeners while sending events. LOOK Probably could replace with guava eventbus Example:
    
      private void createListenerManager() {
        lm = new ListenerManager(
                "ucar.nc2.util.DatasetCollectionManager$EventListener",
                "ucar.nc2.util.DatasetCollectionManager$Event",
                "setMessage");
      }
    
      public void addEventListener(EventListener l) {
        lm.addListener(l);
      }
    
      public void removeEventListener(EventListener l) {
        lm.removeListener(l);
      }
    
      public class Event extends java.util.EventObject {
        private String message;
    
        Event(String message) {
          super(DatasetCollectionManager.this);
          this.message = message;
        }
    
        public String getMessage() {
          return message;
        }
      }
    
      public static interface EventListener {
        public void setMessage(DatasetCollectionManager.Event event);
      }
    
     lm.sendEvent(event);
     
    • Constructor Detail

      • ListenerManager

        public ListenerManager​(String listener_class,
                               String event_class,
                               String method_name)
        Constructor.
        Parameters:
        listener_class - the name of the EventListener class, eg "ucar.unidata.ui.UIChangeListener"
        event_class - the name of the Event class, eg "ucar.unidata.ui.UIChangeEvent"
        method_name - the name of the EventListener method, eg "processChange".
                                  This method must have the signature     public void method_name( event_class e)
                
    • Method Detail

      • setEnabled

        public void setEnabled​(boolean enabled)
      • getEnabled

        public boolean getEnabled()
      • addListener

        public void addListener​(Object l)
        Add a listener.
        Parameters:
        l - listener must be of type "listener_class"
      • removeListener

        public void removeListener​(Object l)
        Remove a listener.
        Parameters:
        l - listener must be of type "listener_class"
      • hasListeners

        public boolean hasListeners()
      • sendEvent

        public void sendEvent​(EventObject event)
        Send an event to all registered listeners. If an exception is thrown, remove the Listener from the list
        Parameters:
        event - the event to be sent: public void method_name( event_class event)
      • sendEventExcludeSource

        public void sendEventExcludeSource​(EventObject event)
        Send an event to all registered listeners, except the named one.
        Parameters:
        event - the event to be sent: public void method_name( event_class event)