You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/12/12 20:50:13 UTC

svn commit: r486304 - /incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java

Author: awiner
Date: Tue Dec 12 12:50:12 2006
New Revision: 486304

URL: http://svn.apache.org/viewvc?view=rev&rev=486304
Log:
Add a warning to showDetail to catch incorrect delivery of DisclosureEvents

Modified:
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java?view=diff&rev=486304&r1=486303&r2=486304
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java Tue Dec 12 12:50:12 2006
@@ -23,6 +23,8 @@
 
 import org.apache.myfaces.trinidad.event.DisclosureEvent;
 
+import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+
 /**
  * Base class for ShowDetail component.
  * @version $Name:  $ ($Revision$) $Date$
@@ -73,7 +75,21 @@
     {
       // Expand or collapse this showDetail
       boolean isDisclosed = ((DisclosureEvent) event).isExpanded();
-      setDisclosed(isDisclosed);
+      // If the component is already in that disclosure state, we 
+      // have a renderer bug.  Either it delivered an unnecessary event,
+      // or even worse it set disclosed on its own instead of waiting 
+      // for the disclosure event to do that, which will lead to lifecycle
+      // problems.  So in either case, warn the developer.
+      if (isDisclosed == isDisclosed())
+      {
+        _LOG.warning("Event {0} was delivered to a showDetail "+
+                     "already in that disclosure state.", event);
+      }
+      else
+      {
+        setDisclosed(isDisclosed);
+      }
+
       //pu: Implicitly record a Change for 'disclosed' attribute
       addAttributeChange("disclosed",
                          isDisclosed ? Boolean.TRUE : Boolean.FALSE);
@@ -108,4 +124,5 @@
     super.queueEvent(e);
   }
 
+  static private final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(UIXShowDetail.class);
 }