You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ar...@apache.org on 2012/03/06 04:48:05 UTC
svn commit: r1297337 -
/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
Author: arobinson74
Date: Tue Mar 6 03:48:03 2012
New Revision: 1297337
URL: http://svn.apache.org/viewvc?rev=1297337&view=rev
Log:
TRINIDAD-2230 - Commit the patch provided thanks to Gary VanMatre
Modified:
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java?rev=1297337&r1=1297336&r2=1297337&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java Tue Mar 6 03:48:03 2012
@@ -1955,7 +1955,10 @@ abstract public class UIXComponentBase e
bean.setProperty(_SYSTEM_EVENT_LISTENERS_KEY, eventStorage);
}
- eventStorage.addAttachedObject(eventClass, new ComponentSystemEventListenerWrapper(componentListener, this));
+ if (componentListener instanceof SystemEventListener && componentListener instanceof StateHolder)
+ eventStorage.addAttachedObject(eventClass, (SystemEventListener) componentListener);
+ else
+ eventStorage.addAttachedObject(eventClass, new ComponentSystemEventListenerWrapper(componentListener, this));
}
@Override
@@ -1981,8 +1984,15 @@ abstract public class UIXComponentBase e
return;
}
- // ComponentSystemEventListenerWrapper implements equals() to compare listener and component
- eventStorage.removeAttachedObject(eventClass, new ComponentSystemEventListenerWrapper(componentListener, this));
+ if (componentListener instanceof SystemEventListener && componentListener instanceof StateHolder)
+ {
+ eventStorage.removeAttachedObject(eventClass, (SystemEventListener) componentListener);
+ }
+ else
+ {
+ // ComponentSystemEventListenerWrapper implements equals() to compare listener and component
+ eventStorage.removeAttachedObject(eventClass, new ComponentSystemEventListenerWrapper(componentListener, this));
+ }
}
@Override
@@ -2442,7 +2452,7 @@ abstract public class UIXComponentBase e
}
- private static class ComponentSystemEventListenerWrapper implements SystemEventListener, StateHolder
+ private static class ComponentSystemEventListenerWrapper implements SystemEventListener, StateHolder, ComponentSystemEventListener
{
ComponentSystemEventListenerWrapper(ComponentSystemEventListener listener, UIComponent component)
{
@@ -2483,7 +2493,13 @@ abstract public class UIXComponentBase e
public void processEvent(SystemEvent event) throws AbortProcessingException
{
assert (event instanceof ComponentSystemEvent);
- _delegate.processEvent((ComponentSystemEvent)event);
+ processEvent((ComponentSystemEvent) event);
+ }
+
+ @Override
+ public void processEvent(ComponentSystemEvent event)
+ {
+ _delegate.processEvent((ComponentSystemEvent) event);
}
@Override