You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by si...@apache.org on 2007/02/12 23:22:48 UTC
svn commit: r506703 - in
/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms:
event/WidgetEventMulticaster.java formmodel/tree/TreeModelHelper.java
Author: simoneg
Date: Mon Feb 12 14:22:48 2007
New Revision: 506703
URL: http://svn.apache.org/viewvc?view=rev&rev=506703
Log:
Fixed an error with listener removal
Modified:
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/WidgetEventMulticaster.java
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeModelHelper.java
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/WidgetEventMulticaster.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/WidgetEventMulticaster.java?view=diff&rev=506703&r1=506702&r2=506703
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/WidgetEventMulticaster.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/WidgetEventMulticaster.java Mon Feb 12 14:22:48 2007
@@ -134,4 +134,15 @@
return (RepeaterListener)removeInternal(l, oldl);
}
+ protected EventListener remove(EventListener oldl) {
+ if (oldl == a) return b;
+ if (oldl == b) return a;
+ EventListener a2 = removeInternal(a, oldl);
+ EventListener b2 = removeInternal(b, oldl);
+ if (a2 == a && b2 == b) {
+ return this; // it's not here
+ }
+ return addInternal(a2, b2);
+ }
+
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeModelHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeModelHelper.java?view=diff&rev=506703&r1=506702&r2=506703
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeModelHelper.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeModelHelper.java Mon Feb 12 14:22:48 2007
@@ -16,6 +16,7 @@
*/
package org.apache.cocoon.forms.formmodel.tree;
+import java.awt.AWTEventMulticaster;
import java.util.EventListener;
import org.apache.cocoon.forms.event.WidgetEventMulticaster;
@@ -78,13 +79,24 @@
if (b == null) return a;
return new EventMulticaster(a, b);
}
-
+
public static TreeModelListener add(TreeModelListener a, TreeModelListener b) {
return (TreeModelListener)addInternal(a, b);
}
public static TreeModelListener remove(TreeModelListener l, TreeModelListener oldl) {
return (TreeModelListener)removeInternal(l, oldl);
+ }
+
+ protected EventListener remove(EventListener oldl) {
+ if (oldl == a) return b;
+ if (oldl == b) return a;
+ EventListener a2 = removeInternal(a, oldl);
+ EventListener b2 = removeInternal(b, oldl);
+ if (a2 == a && b2 == b) {
+ return this; // it's not here
+ }
+ return addInternal(a2, b2);
}
public void treeStructureChanged(TreeModelEvent event) {