https://issues.apache.org/jira/browse/EXTSCRIPT-136


git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@958532 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventListener.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventListener.java
index bab6a9a..a5162da 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventListener.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventListener.java
@@ -1,6 +1,6 @@
 package org.apache.myfaces.extensions.scripting.sandbox.extensionevents;
 
-import java.util.List;
+import java.util.Set;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -19,11 +19,12 @@
     public void handleEvent(ExtensionEvent ev);
 
     /**
-     * returns the event idenitifiers this listener
+     * returns the event identifiers this listener
      * is a listener for (additional hints which will speed up the event handling)
      *
-     * @return
+     * @param evt the event to be triggered for
+     * @return true if the listener is a listener for the specific event
      */
-    public List<Integer> listenerFor();
+    public boolean isListenerFor(ExtensionEvent evt);
 
 }
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventRegistry.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventRegistry.java
index 102ef5e..d07e8ec 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventRegistry.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/sandbox/extensionevents/ExtensionEventRegistry.java
@@ -43,8 +43,8 @@
 
     public void removeAllListeners(Class eventType) {
         Iterator<ExtensionEventListener> it = _listeners.iterator();
-        while(it.hasNext()) {
-            if(it.next().getClass() == eventType) {
+        while (it.hasNext()) {
+            if (it.next().getClass() == eventType) {
                 it.remove();
             }
         }
@@ -56,7 +56,9 @@
 
     public void sendEvent(ExtensionEvent evt) {
         for (ExtensionEventListener listener : _listeners) {
-            listener.handleEvent(evt);
+            if (listener.isListenerFor(evt)) {
+                listener.handleEvent(evt);
+            }
         }
     }