Changeset 10

Show
Ignore:
Timestamp:
06/21/05 15:42:14 (4 years ago)
Author:
schst
Message:

Added removeEventListener()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/net/schst/EventDispatcher/EventDispatcher.java

    r4 r10  
    9292    } 
    9393 
     94   /** 
     95    * Remove an event listener 
     96    *  
     97    * @param eventName      name of the event 
     98    * @param listener       the event listener object 
     99    * @return               true, if the listener could be removed, false otherwise 
     100    */ 
     101    public boolean removeEventListener(String eventName, EventListener listener) { 
     102        if (!this.listeners.containsKey(eventName)) { 
     103            return false; 
     104        } 
     105        EventListenerCollection collection = (EventListenerCollection)this.listeners.get(eventName); 
     106        EventListenerContainer container = (EventListenerContainer)collection.removeListener(listener); 
     107        if (container == null) { 
     108            return false; 
     109        } 
     110        return true; 
     111    } 
     112     
    94113    /** 
    95114     * Add an event listener object 
     
    110129     */ 
    111130     public void addGlobalListener(EventListener listener, boolean autoRemove) { 
    112          // TODO implement autoRemove 
    113           
    114131         this.globalListeners.addListener(listener, autoRemove); 
    115132          
  • trunk/src/net/schst/EventDispatcher/EventListenerCollection.java

    r4 r10  
    33import java.util.ArrayList; 
    44import java.util.Iterator; 
     5 
     6import net.schst.EventDispatcher.Examples.DebugHandler; 
    57 
    68/** 
     
    5456        for (Iterator iter = remove.iterator(); iter.hasNext();) { 
    5557            Integer index = (Integer) iter.next(); 
    56             this.removeListener(index); 
     58            this.removeListener(index.intValue()); 
    5759        } 
    5860        return e; 
     
    6264    * Remove a listener from the list 
    6365    *  
    64     * @param i 
     66    * @param index  index of the event listener    
    6567    * @return 
    6668    */ 
    67     public EventListenerContainer removeListener(Integer i) { 
    68         return (EventListenerContainer)this.listeners.remove(i.intValue()); 
     69    public EventListenerContainer removeListener(int index) { 
     70        return (EventListenerContainer)this.listeners.remove(index); 
    6971    } 
    70      
     72 
     73    /** 
     74     * Remove a listener from the list 
     75     *  
     76     * If a listener has been added more the once, only the 
     77     * first listener is removed 
     78     *  
     79     * @param listener      listener to remove    
     80     * @return 
     81     */ 
     82     public EventListenerContainer removeListener(EventListener listener) { 
     83         for (Iterator iter = this.listeners.iterator(); iter.hasNext();) { 
     84            EventListenerContainer container = (EventListenerContainer) iter.next(); 
     85            if (container.getListener().equals(listener)) { 
     86                this.listeners.remove(container); 
     87                return container; 
     88            } 
     89         } 
     90         return null; 
     91     } 
    7192} 
  • trunk/src/net/schst/EventDispatcher/Examples/DebugHandler.java

    r3 r10  
    2828        System.out.println(); 
    2929    } 
     30     
     31   /** 
     32    * Get the name of the handler 
     33    *  
     34    * @return 
     35    */ 
     36    public String getName() { 
     37        return this.name; 
     38    } 
     39     
    3040}