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 2008/01/09 07:25:13 UTC

svn commit: r610278 - in /myfaces/trinidad/trunk_1.2.x: trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/ trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ trinidad-examples/trinidad-demo/src/m...

Author: arobinson74
Date: Tue Jan  8 22:25:11 2008
New Revision: 610278

URL: http://svn.apache.org/viewvc?rev=610278&view=rev
Log:
TRINIDAD-886

Merge from 1.0 trunk revision 610275


Added:
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/DemoShowDetailDisclosureBean.java
      - copied unchanged from r610275, myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/DemoShowDetailDisclosureBean.java
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx
      - copied, changed from r610275, myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx
Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java
    myfaces/trinidad/trunk_1.2.x/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ShowDetail.xml
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/faces-config.xml
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/demos.jspx
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelAccordionRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXShowDetailTemplate.java Tue Jan  8 22:25:11 2008
@@ -40,6 +40,7 @@
 /**/  abstract public void setDisclosed(boolean setDisclosed);
 /**/  abstract public boolean isImmediate();
 /**/  abstract public MethodExpression getDisclosureListener();
+/**/  abstract public boolean isDisclosedTransient();
 
   @Deprecated
   public void setDisclosureListener(MethodBinding binding)
@@ -82,25 +83,30 @@
 
     if (event instanceof DisclosureEvent)
     {
-      // Expand or collapse this showDetail
-      boolean isDisclosed = ((DisclosureEvent) event).isExpanded();
-      // 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_DELIVERED_ALREADY_IN_DISCLOSURE_STATE", event);
+      // Do not update the disclosed if "transient"
+      if (!isDisclosedTransient())
+      {      
+        // Expand or collapse this showDetail
+        boolean isDisclosed = ((DisclosureEvent) event).isExpanded();
+        // 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_DELIVERED_ALREADY_IN_DISCLOSURE_STATE", event);
+        }
+        else
+        {
+          setDisclosed(isDisclosed);
+        }
+  
+        //pu: Implicitly record a Change for 'disclosed' attribute
+        addAttributeChange("disclosed",
+                           isDisclosed ? Boolean.TRUE : Boolean.FALSE);
       }
-      else
-      {
-        setDisclosed(isDisclosed);
-      }
-
-      //pu: Implicitly record a Change for 'disclosed' attribute
-      addAttributeChange("disclosed",
-                         isDisclosed ? Boolean.TRUE : Boolean.FALSE);
+      
       if (isImmediate())
         getFacesContext().renderResponse();
 

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ShowDetail.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ShowDetail.xml?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ShowDetail.xml (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/ShowDetail.xml Tue Jan  8 22:25:11 2008
@@ -47,6 +47,21 @@
       </property-extension>
     </property>
     <property>
+      <description><![CDATA[stops the local value of disclosed from being set
+        by renderers. This allows the value to always be taken from the value of the disclosed
+        value expression. Disclosed values must be updated in other ways (i.e. from a
+        disclosure listener)]]></description>
+      <property-name>disclosedTransient</property-name>
+      <property-class>boolean</property-class>
+      <default-value>false</default-value>
+      <property-extension>
+        <mfp:property-metadata>
+          <mfp:preferred>true</mfp:preferred>
+        </mfp:property-metadata>
+        <mfp:unsupported-agents>phone voice</mfp:unsupported-agents>
+      </property-extension>
+    </property>
+    <property>
       <description><![CDATA[whether data validation - client-side or
             server-side - should be skipped when
           events are generated by this component.

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/faces-config.xml?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/faces-config.xml Tue Jan  8 22:25:11 2008
@@ -3051,5 +3051,9 @@
     <managed-bean-class>org.apache.myfaces.trinidaddemo.resource.SkinTranslationMapDemo</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>
-
+  <managed-bean>
+    <managed-bean-name>showDetailDisclosureBean</managed-bean-name>
+    <managed-bean-class>org.apache.myfaces.trinidaddemo.DemoShowDetailDisclosureBean</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
 </faces-config>

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml Tue Jan  8 22:25:11 2008
@@ -75,7 +75,7 @@
        is deployed -->
   <context-param>
     <param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>
-    <param-value>true</param-value>
+    <param-value>false</param-value>
   </context-param>
 
   <!-- Enables Change Persistence at a session scope.  By default,

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/demos.jspx
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/demos.jspx?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/demos.jspx (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/demos.jspx Tue Jan  8 22:25:11 2008
@@ -51,6 +51,8 @@
                               action="demos.changePersistence" />
               <tr:commandLink text="Table Demos" action="demos.tableDemos" />
               <tr:commandLink text="Skin Demo" action="demos.skin" />
+              <tr:goLink text="Show Detail Disclosure Demo"
+                destination="showDetailDiscloseOne.jspx" />
               
             </tr:panelGroupLayout>
            </tr:panelHeader>

Copied: myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx (from r610275, myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx)
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx?p2=myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx&p1=myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx&r1=610275&r2=610278&rev=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/showDetailDiscloseOne.jspx Tue Jan  8 22:25:11 2008
@@ -20,7 +20,7 @@
 -->
 <jsp:root
   xmlns:jsp="http://java.sun.com/JSP/Page"
-  version="2.0"
+  version="2.1"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:tr="http://myfaces.apache.org/trinidad">
   <jsp:directive.page contentType="text/html;charset=utf-8"/>
@@ -57,7 +57,7 @@
                   disclosed="#{showDetailDisclosureBean.disclosureKey eq _val}"
                   disclosedText="#{_val}"
                   undisclosedText="#{_val}">
-                  <tr:attribute name="disclosureKey" value="#{_val}" />
+                  <f:attribute name="disclosureKey" value="#{_val}" />
                   <tr:outputText value="Disclosed" />
                 </tr:showDetail>
               </tr:iterator>
@@ -69,7 +69,7 @@
                   disclosureListener="#{showDetailDisclosureBean.handleDisclosure}"
                   disclosed="#{showDetailDisclosureBean.disclosureKey eq 'ItemA'}"
                   text="ItemA">
-                  <tr:attribute name="disclosureKey" value="ItemA" />
+                  <f:attribute name="disclosureKey" value="ItemA" />
                   <tr:outputText value="ItemA" />
                 </tr:showDetailItem>
                 <tr:showDetailItem
@@ -77,7 +77,7 @@
                   disclosureListener="#{showDetailDisclosureBean.handleDisclosure}"
                   disclosed="#{showDetailDisclosureBean.disclosureKey eq 'ItemB'}"
                   text="ItemB">
-                  <tr:attribute name="disclosureKey" value="ItemB" />
+                  <f:attribute name="disclosureKey" value="ItemB" />
                   <tr:outputText value="ItemB" />
                 </tr:showDetailItem>
                 <tr:showDetailItem
@@ -85,7 +85,7 @@
                   disclosureListener="#{showDetailDisclosureBean.handleDisclosure}"
                   disclosed="#{showDetailDisclosureBean.disclosureKey eq 'ItemC'}"
                   text="ItemC">
-                  <tr:attribute name="disclosureKey" value="ItemC" />
+                  <f:attribute name="disclosureKey" value="ItemC" />
                   <tr:outputText value="ItemC" />
                 </tr:showDetailItem>
                 <tr:showDetailItem
@@ -93,7 +93,7 @@
                   disclosureListener="#{showDetailDisclosureBean.handleDisclosure}"
                   disclosed="#{showDetailDisclosureBean.disclosureKey eq 'ItemD'}"
                   text="ItemD">
-                  <tr:attribute name="disclosureKey" value="ItemD" />
+                  <f:attribute name="disclosureKey" value="ItemD" />
                   <tr:outputText value="ItemD" />
                 </tr:showDetailItem>
               </tr:panelTabbed>
@@ -103,4 +103,4 @@
       </tr:form>
     </tr:document>
   </f:view>
-</jsp:root>
\ No newline at end of file
+</jsp:root>

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelAccordionRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelAccordionRenderer.java?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelAccordionRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelAccordionRenderer.java Tue Jan  8 22:25:11 2008
@@ -197,7 +197,7 @@
     // If we have a minimum of 1 disclosed child and none have been disclosed
     // yet, disclose the first rendered one:
     if ( (disclosedChild == null) && !getDiscloseNone(bean) &&
-      (renderableChild != null) )
+      (renderableChild != null) && !renderableChild.isDisclosedTransient())
     {
       renderableChild.setDisclosed(true);
     }

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java Tue Jan  8 22:25:11 2008
@@ -109,7 +109,8 @@
     }
 
     // If nothing has been disclosed as of yet, disclose the first rendered one
-    if ( (disclosedChild == null) && (renderableChild != null) )
+    if ( (disclosedChild == null) && (renderableChild != null) &&
+      !renderableChild.isDisclosedTransient())
     {
       renderableChild.setDisclosed(true);
     }

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java?rev=610278&r1=610277&r2=610278&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java Tue Jan  8 22:25:11 2008
@@ -79,8 +79,11 @@
           Object disabled = child.getAttributes().get("disabled");
           if (Boolean.TRUE.equals(disabled))
             continue;
-
-          child.setDisclosed(true);
+          
+          if (!child.isDisclosedTransient())
+          {
+            child.setDisclosed(true);
+          }
           break;
         }
       }