Author: gvanmatre
Date: Tue Oct 24 09:04:31 2006
New Revision: 467369

URL: http://svn.apache.org/viewvc?view=rev&rev=467369
Log:
The Clay component was previously defined as an naming container.  The html 
templates also assumed a naming container.  Assuming the naming container plays 
havoc with some components.  As part of issue SHALE-316, I've removed the 
requirement that Clay realizes the NamingContainer interface.  This means the 
developer will have to be more aware of the included template widgets making 
sure there are not duplicate id's.  The result will be that the html templates 
will be more inline with JSP Tag created views.

Modified:
    
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/rolodex/jsprolodex.jsp
    
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/symbols/nameReuse.html
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/Clay.java
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/ClayTemplateParser.java
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ComponentConfigBean.java
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/OutputLinkBuilder.java
    
shale/framework/trunk/shale-clay/src/test/resources/org/apache/shale/clay/config/duplicate2.html

Modified: 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/rolodex/jsprolodex.jsp
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/rolodex/jsprolodex.jsp?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/rolodex/jsprolodex.jsp
 (original)
+++ 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/rolodex/jsprolodex.jsp
 Tue Oct 24 09:04:31 2006
@@ -168,14 +168,22 @@
                                <h:outputText 
value="#{messages['rolodex.address.businessAddress']}" style="color:#66B9CC"/>
                                <!-- clay:clay id="address1" 
jsfid="addressPanel"
                                        
managedBeanName="rolodex.selectedContact.residentialAddress" / -->
-                               <clay:clay id="address1" 
jsfid="classpath*:org/apache/shale/usecases/rolodex/address.html"
-                                       
managedBeanName="rolodex.selectedContact.residentialAddress" />
-                               <clay:clay id="address2" 
jsfid="foreignAddressPanel"
-                                       
managedBeanName="rolodex.selectedContact.businessAddress" />
+                               <f:subview id="address1">
+                                  <clay:clay id="address1" 
jsfid="classpath*:org/apache/shale/usecases/rolodex/address.html"
+                                          
managedBeanName="rolodex.selectedContact.residentialAddress" />
+                           </f:subview>
+                           <f:subview id="address2">
+                                  <clay:clay id="address2" 
jsfid="foreignAddressPanel"
+                                          
managedBeanName="rolodex.selectedContact.businessAddress" />
+                               </f:subview>
+                               <f:subview id="phone1">
                                <clay:clay id="phone1" 
jsfid="residentialPhonePanel"
                                        
managedBeanName="rolodex.selectedContact" />
-                               <clay:clay id="phone2" 
jsfid="businessPhonePanel"
-                                       
managedBeanName="rolodex.selectedContact" />
+                               </f:subview>
+                               <f:subview id="phone2">
+                                  <clay:clay id="phone2" 
jsfid="businessPhonePanel"
+                                          
managedBeanName="rolodex.selectedContact" />
+                           </f:subview>
                        </h:panelGrid>
                </h:panelGrid></div>
        </h:form>

Modified: 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/symbols/nameReuse.html
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/symbols/nameReuse.html?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/symbols/nameReuse.html
 (original)
+++ 
shale/framework/trunk/shale-apps/shale-clay-usecases/src/main/webapp/symbols/nameReuse.html
 Tue Oct 24 09:04:31 2006
@@ -32,18 +32,24 @@
     <h:commandLink action="home" allowBody="true" immediate="true" 
value="Back"/><br/>
        <h1>Basic Person</h1>
        <hr>
-       <clay:clay id="basicPerson" clayJsfid="basicPersonNamePanel"
-               managedBeanName="basicPerson" />
+       <f:subview id="basicPersonSubview">
+          <clay:clay id="basicPerson" clayJsfid="basicPersonNamePanel"
+                  managedBeanName="basicPerson" />
+    </f:subview>
        <br>
        <h1>Full Person</h1>
        <hr>
-       <clay:clay id="fullPerson" clayJsfid="fullPersonNamePanel"
-               managedBeanName="fullPerson" />
+       <f:subview id="fullPersonSubview">
+          <clay:clay id="fullPerson" clayJsfid="fullPersonNamePanel"
+                  managedBeanName="fullPerson" />
+    </f:subview>
        <br>
        <h1>Business Person</h1>
        <hr>
-       <clay:clay id="businessPerson" clayJsfid="businessPersonNamePanel"
+       <f:subview id="businessPersonSubview">
+          <clay:clay id="businessPerson" clayJsfid="businessPersonNamePanel"
                managedBeanName="businessPerson" />
+    </f:subview>
        <br>
        <h:commandButton action="#{symbols$nameReuse.save}" value="Save" />
        <h:commandButton action="home" value="Home" immediate="true" />

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/Clay.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/Clay.java?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/Clay.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/Clay.java
 Tue Oct 24 09:04:31 2006
@@ -27,7 +27,7 @@
 import java.util.TreeMap;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
+import javax.faces.component.UIComponentBase;
 import javax.faces.context.FacesContext;
 import javax.faces.el.MethodBinding;
 
@@ -51,7 +51,7 @@
  * This component grafts a subview onto the current JSF view.
  *
  */
-public class Clay extends UINamingContainer {
+public class Clay extends UIComponentBase {
 
     /**
      * <p>
@@ -549,6 +549,13 @@
      */
     public boolean getRendersChildren() {
         return true;
+    }
+
+    /**
+     * <p>Returns the component's family.</p>
+     */
+    public String getFamily() {
+        return "org.apache.shale.clay";
     }
 
 

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/ClayTemplateParser.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/ClayTemplateParser.java?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/ClayTemplateParser.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/ClayTemplateParser.java
 Tue Oct 24 09:04:31 2006
@@ -153,7 +153,7 @@
 
         ComponentBean root = new ComponentBean();
         root.setJsfid(templateName);
-        root.setComponentType("javax.faces.NamingContainer");
+        root.setComponentType("javax.faces.HtmlOutputText");
 
         // generate the document
 

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ComponentConfigBean.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ComponentConfigBean.java?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ComponentConfigBean.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ComponentConfigBean.java
 Tue Oct 24 09:04:31 2006
@@ -1351,7 +1351,6 @@
     protected static final String[] NAMING_CONTAINER_TYPES = {
         "javax.faces.HtmlForm",
         "javax.faces.HtmlDataTable",
-        "org.apache.shale.clay.component.Clay",
         "org.apache.shale.view.Subview",
         "javax.faces.NamingContainer"};
 

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/OutputLinkBuilder.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/OutputLinkBuilder.java?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/OutputLinkBuilder.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/OutputLinkBuilder.java
 Tue Oct 24 09:04:31 2006
@@ -90,8 +90,8 @@
         
         AttributeBean attr = target.getAttribute("value");
         SymbolBean symbol = target.getSymbol("href");
-        if (symbol != null && attr != null
-            && attr.getValue() == null || attr.getValue().length() == 0) {
+        if ((symbol != null && attr != null)
+            && (attr.getValue() == null || attr.getValue().length() == 0)) {
             attr.setValue("@href");
         }
     }

Modified: 
shale/framework/trunk/shale-clay/src/test/resources/org/apache/shale/clay/config/duplicate2.html
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/test/resources/org/apache/shale/clay/config/duplicate2.html?view=diff&rev=467369&r1=467368&r2=467369
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/test/resources/org/apache/shale/clay/config/duplicate2.html
 (original)
+++ 
shale/framework/trunk/shale-clay/src/test/resources/org/apache/shale/clay/config/duplicate2.html
 Tue Oct 24 09:04:31 2006
@@ -19,13 +19,14 @@
 <input id=street1 value="[EMAIL PROTECTED]" type=text size=45>
 <form>
     <input id=street1 value="[EMAIL PROTECTED]" type=text size=45>
-    <span jsfid="clay" allowBody="true">
-       <input id=street1 value="[EMAIL PROTECTED]" type=text size=45>
+    <span id="subview1" jsfid="subview" allowBody="true">
+       <span jsfid="clay" allowBody="true">
+          <input id=street1 value="[EMAIL PROTECTED]" type=text size=45>
+       </span>
     </span>
-    <span jsfid="subview" allowBody="true">
+    <span id="subview2" jsfid="subview" allowBody="true">
        <input id=street1 value="[EMAIL PROTECTED]" type=text size=45>
        <input [EMAIL PROTECTED] value="[EMAIL PROTECTED]" type=text size=45> 
-       <input [EMAIL PROTECTED] value="[EMAIL PROTECTED]" type=text size=45>
-      
+       <input [EMAIL PROTECTED] value="[EMAIL PROTECTED]" type=text size=45>   
   
     </span>
 </form>


Reply via email to