You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by gv...@apache.org on 2006/01/17 04:17:03 UTC

svn commit: r369652 - in /struts/shale/trunk/use-cases/src: java/org/apache/shale/usecases/symbols/ java/org/apache/shale/usecases/view/ web/ web/WEB-INF/ web/symbols/

Author: gvanmatre
Date: Mon Jan 16 19:16:48 2006
New Revision: 369652

URL: http://svn.apache.org/viewcvs?rev=369652&view=rev
Log:
Added use case for demonstrating Clay's symbol replacement feature.

Added:
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java   (with props)
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java   (with props)
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java   (with props)
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java   (with props)
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml   (with props)
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html   (with props)
    struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/
    struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/fullperson.html   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/header.html   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/home.jsp   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/layout.html   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/page3.html   (with props)
    struts/shale/trunk/use-cases/src/web/symbols/viewsource.html   (with props)
Modified:
    struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
    struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml
    struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml
    struts/shale/trunk/use-cases/src/web/usecases.jsp

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java Mon Jan 16 19:16:48 2006
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.shale.usecases.symbols;
+
+import org.apache.shale.view.AbstractFacesBean;
+
+/**
+ * <p>This class describes the very minimum about a person.</p>
+ */
+public class BasicPerson extends AbstractFacesBean {
+    
+    private String firstName = null;
+    
+    private String lastName = null;
+    
+    /**
+     * @return Person's first name.
+     */
+    public String getFirstName() {
+        return firstName;
+    }
+    
+    /**
+     * @param firstName Person's first name.
+     */
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+    
+    /**
+     * @return Person's last name.
+     */
+    public String getLastName() {
+        return lastName;
+    }
+    
+    /**
+     * @param lastName Person's last name.
+     */
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+    
+}

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BasicPerson.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java Mon Jan 16 19:16:48 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.usecases.symbols;
+
+/**
+ * <p>This class represents a new category of a person documenting 
+ * their employer or business entity name.</p>
+ */
+public class BusinessPerson extends FullPerson {
+    private String businessName = null;
+    
+    /**
+     * @return business Name associated with a person.
+     */
+    public String getBusinessName() {
+        return businessName;
+    }
+    
+    /**
+     * @param businessName Business name associated with a person.
+     */
+    public void setBusinessName(String businessName) {
+        this.businessName = businessName;
+    }
+    
+}

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/BusinessPerson.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java Mon Jan 16 19:16:48 2006
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.usecases.symbols;
+
+/**
+ * <p>This class extends the information collected by basic person.</p>
+ */
+public class FullPerson extends BasicPerson {
+    private String prefix = null;   
+    private String middleName = null;
+    private String suffix = null;
+    
+    
+    /**
+     * @return Name suffix of a person.
+     */
+    public String getSuffix() {
+        return suffix;
+    }
+    
+    
+    /**
+     * @param suffix Name suffix of a person.
+     */
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+    
+    /**
+     * @return Middle name of a person.
+     */
+    public String getMiddleName() {
+        return middleName;
+    }
+    
+    /**
+     * @param middleName Middle name of a person.
+     */
+    public void setMiddleName(String middleName) {
+        this.middleName = middleName;
+    }
+    
+    /**
+     * @return Person's name prefix.
+     */
+    public String getPrefix() {
+        return prefix;
+    }
+    
+    /**
+     * @param prefix Person's name prefix.
+     */
+    public void setPrefix(String prefix) {
+        this.prefix = prefix;
+    }
+    
+}

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/FullPerson.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java Mon Jan 16 19:16:48 2006
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.usecases.symbols;
+
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+
+import org.apache.shale.view.AbstractViewController;
+
+/**
+ * <p>This view controller manages state outside of the managed beans 
+ * associated with the form.  It's purpose is to respond to the loading 
+ * of the page and processing the posted events.</p>
+ */
+public class RegistrationForm extends AbstractViewController {
+    
+    /**
+     * <p>This view controller is scoped in the request.  The init method
+     * is invoked each request and the page's state is handle using 
+     * session scoped backing beans.  The dialog for these session scoped
+     * backing beans are managed through this stateless controller. 
+     * This separation of view model data and action controller is similar 
+     * to Struts Action 1.x.</p> 
+     */
+    public void init() {
+        
+        FacesContext context = FacesContext.getCurrentInstance();
+        String init = (String) ((Map) getBean("param")).get("init");
+        boolean isInit = Boolean.parseBoolean(init);
+        if (isInit) {
+            BasicPerson person = new BasicPerson();
+            person.setFirstName("Gary");
+            person.setLastName("VanMatre");
+            setBean("basicPerson", person);
+            
+            setBean("fullPerson", new FullPerson());
+            setBean("businessPerson", new BusinessPerson());
+        }
+    }
+    
+    /**
+     * <p>Handles action of saving the pages state.</p> 
+     */
+    public String save() {      
+        return "save";
+    }
+    
+}

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/RegistrationForm.java
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml Mon Jan 16 19:16:48 2006
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--    
+
+ Copyright 2006 The Apache Software Foundation.
+ 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ 
+      http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+  <!DOCTYPE view PUBLIC
+      "-//Apache Software Foundation//DTD Shale Clay View Configuration 1.0//EN"
+      "http://struts.apache.org/dtds/shale-clay-config_1_0.dtd">
+
+<view>
+    <component jsfid="/symbols/page1.xml" extends="basePage">
+       <symbols>
+           <set name="@title" value="Page 1"/>
+           <set name="@bodycontent" value="page1Panel"/> 
+           <set name="@logo" value="http://myfaces.apache.org/images/myfaces-logo.png"/>  
+           <set name="@leftContent" value="page1LeftPanel"/>       
+       </symbols>
+    </component>
+    
+     <component jsfid="/symbols/page2.xml" extends="basePage">
+       <symbols>
+           <set name="@title" value="Page 2"/>
+           <set name="@bodycontent" value="/symbols/fullperson.html"/>
+           <set name="@logo" value="http://jsfcentral.com/images/jsf-logo-new.gif"/>  
+           <set name="@leftContent" value="page2LeftPanel"/>                   
+       </symbols>
+    </component>
+    
+</view>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/clay-tiles-config.xml
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html (added)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,5 @@
+<tr>
+   <td><label jsfid="widgetsLabel">Mock Label:</label></td>
+   <td><input jsfid="widgetsText" type="text"/></td>
+   <td><span jsfid="widgetsMessage">Mock Message</span><td>
+</tr>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/symbols/inputTextWidget.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Modified: struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties?rev=369652&r1=369651&r2=369652&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties (original)
+++ struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties Mon Jan 16 19:16:48 2006
@@ -143,7 +143,8 @@
 usecases.rolodex4=Rolodex Example (Full XML View)
 usecases.rolodex4.title=This example demonstrates using full XML views for maximum reuse.
 usecases.rolodex.viewsource=View Source
-
+usecases.symbols=Symbols 
+usecases.symbols.title=This example demonstrates how symbols are a very powerful reuse feature in Clay.
 
 # Validation
 validate.test.title=Shale Validation using Commons Validator
@@ -195,4 +196,5 @@
 headerSorter.descTitle=Sorted Descending
 headerSorter.ascImage=/static/org/apache/shale/usecases/rolodex/up.gif.faces
 headerSorter.descImage=/static/org/apache/shale/usecases/rolodex/down.gif.faces
+
 

Added: struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml (added)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml Mon Jan 16 19:16:48 2006
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE view PUBLIC
+      "-//Apache Software Foundation//DTD Shale Clay View Configuration 1.0//EN"
+      "http://struts.apache.org/dtds/shale-clay-config_1_0.dtd">
+
+<view>
+
+    <!-- Base layout defintion  -->
+    <component jsfid="basePage" extends="clay">
+       <attributes>
+           <set name="clayJsfid" value="/symbols/layout.html" />
+       </attributes>
+       <symbols>
+           <set name="@title" value="Default Title"/>
+           <set name="@leftContent" value="page3LeftPanel"/>
+           <set name="@headercontent" value="/symbols/header.html"/>
+           <set name="@logo" value="http://struts.apache.org/images/struts.gif"/>
+           <set name="@bodycontent" value="space"/>
+           <set name="@footercontent" value="footerPanel"/>   
+       </symbols>
+    </component>
+
+	<!-- base lable color -->
+	<component jsfid="baseLabel" extends="outputLabel" allowBody="false">
+	   <attributes>
+	       <set name="style" value="color:blue"/>
+	   </attributes>
+	</component>
+
+    <!--  base error message -->
+	<component jsfid="baseMessage" extends="message" allowBody="false">
+	   <attributes>
+	       <set name="style" value="color:red"/>
+	   </attributes>
+	</component>
+	
+	<component jsfid="firstNameLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="First Name:" />		
+			  <set name="for"   value="firstName" />
+		   </attributes>
+	</component>				
+	<component jsfid="firstName" extends="inputText" id="firstName"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.firstName}"/>		
+			  <set name="size" value="20" />
+			  <set name="maxlength" value="30" />
+			  <set name="required" value="true" />
+			  <set name="immediate" value="true"/>
+		   </attributes>
+	</component>
+	<component jsfid="firstNameMessage" extends="baseMessage" > 
+		   <attributes>
+		      <set name="for" value="firstName" />		
+		   </attributes>
+	</component>
+
+	<component jsfid="lastNameLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="Last Name:" />		
+			  <set name="for"   value="lastName" />
+		   </attributes>
+	</component>				
+	<component jsfid="lastName" extends="inputText" id="lastName"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.lastName}"/>		
+			  <set name="size" value="30" />
+			  <set name="maxlength" value="40" />
+			  <set name="required" value="true" />
+		   </attributes>
+	</component>
+	<component jsfid="lastNameMessage" extends="baseMessage" > 
+		   <attributes>
+		      <set name="for" value="lastName" />		
+		   </attributes>
+	</component>
+
+	<component jsfid="middleNameLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="Middle Name:" />		
+			  <set name="for"   value="middleName" />
+		   </attributes>
+	</component>				
+	<component jsfid="middleName" extends="firstName" id="middleName"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.middleName}"/>		
+			  <set name="required" value="false" />
+		   </attributes>
+	</component>
+
+	<component jsfid="businessNameLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="Business Name:" />		
+			  <set name="for"   value="businessName" />
+		   </attributes>
+	</component>				
+	<component jsfid="businessName" extends="inputText" id="businessName"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.businessName}"/>		
+			  <set name="size" value="40" />
+			  <set name="maxlength" value="50" />
+			  <set name="required" value="false" />
+		   </attributes>
+	</component>
+
+	<component jsfid="namePrefixLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="Name Prefix:" />		
+			  <set name="for"   value="namePrefix" />
+		   </attributes>
+	</component>				
+
+	<component jsfid="namePrefix" extends="selectOneMenu" id="namePrefix" allowBody="false"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.prefix}"/>		
+			  <set name="required" value="false" />
+		   </attributes>
+
+            
+		   <element renderId="0" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value=""/>
+		          <set name="itemValue" value=""/>
+		      </attributes>
+		   </element>
+		   <element renderId="1" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="Mr."/>
+		          <set name="itemValue" value="Mr."/>
+		      </attributes>
+		   </element>
+		   <element renderId="2" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="Ms."/>
+		          <set name="itemValue" value="Ms."/>
+		      </attributes>
+		   </element>
+		   <element renderId="3" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="Miss"/>
+		          <set name="itemValue" value="Miss"/>
+		      </attributes>
+		   </element>  
+		   <element renderId="4" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="Mrs."/>
+		          <set name="itemValue" value="Mrs."/>
+		      </attributes>
+		   </element>
+		   <element renderId="5" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="Dr."/>
+		          <set name="itemValue" value="Dr."/>
+		      </attributes>
+		   </element>
+		 
+		   
+	</component>
+
+
+	<component jsfid="nameSuffixLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="Name Suffix:" />		
+			  <set name="for"   value="nameSuffix" />
+		   </attributes>
+	</component>				
+
+	<component jsfid="nameSuffix" extends="selectOneMenu" id="nameSuffix" allowBody="false"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.suffix}"/>		
+			  <set name="required" value="false" />
+		   </attributes>
+
+           
+		   <element renderId="0" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value=""/>
+		          <set name="itemValue" value=""/>
+		      </attributes>
+		   </element>	   
+		   <element renderId="1" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="JR"/>
+		          <set name="itemValue" value="JR"/>
+		      </attributes>
+		   </element>
+		   <element renderId="2" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="SR"/>
+		          <set name="itemValue" value="SR"/>
+		      </attributes>
+		   </element>
+		   <element renderId="3" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="II"/>
+		          <set name="itemValue" value="II"/>
+		      </attributes>
+		   </element>  
+		   <element renderId="4" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="III"/>
+		          <set name="itemValue" value="III"/>
+		      </attributes>
+		   </element>
+		   <element renderId="5" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="IV"/>
+		          <set name="itemValue" value="IV"/>
+		      </attributes>
+		   </element>
+		   <element renderId="6" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="MD"/>
+		          <set name="itemValue" value="MD"/>
+		      </attributes>
+		   </element>
+		   <element renderId="7" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="PHD"/>
+		          <set name="itemValue" value="PHD"/>
+		      </attributes>
+		   </element>
+		   <element renderId="8" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="PH.D"/>
+		          <set name="itemValue" value="PH.D"/>
+		      </attributes>
+		   </element>
+		   <element renderId="9" jsfid="selectItem">
+		      <attributes>
+		          <set name="itemLabel" value="M.D."/>
+		          <set name="itemValue" value="M.D."/>
+		      </attributes>
+		   </element>
+		   
+		   
+	</component>
+
+   <component jsfid="footerPanel" extends="panelGrid">
+      <attributes>
+         <set name="columns" value="2"/>
+         <set name="width" value="100%"/>
+      </attributes>
+      
+      <element renderId="1" jsfid="commandButton">
+        <attributes>
+           <set name="action" value="#{@managed-bean-name.save}"/>
+           <set name="value" value="Save"/>           
+        </attributes>
+      </element>
+
+      <element renderId="2" jsfid="commandButton">
+        <attributes>
+           <set name="action" value="home"/>
+           <set name="value" value="Home"/>           
+           <set name="immediate" value="true"/>           
+        </attributes>
+      </element>
+   </component>
+   
+   <component jsfid="page1Panel" extends="subview" allowBody="false">
+
+       <element renderId="2" jsfid="basicPersonNamePanel">
+          <symbols>
+             <set name="managed-bean-name" value="basicPerson"/>
+          </symbols>
+       </element>
+         
+   </component>
+
+    <component jsfid="page2Panel" extends="subview" allowBody="true">
+       <symbols>
+          <set name="managed-bean-name" value="fullPerson"/>
+       </symbols>
+    </component>
+
+    <component jsfid="page3Panel" extends="subview" allowBody="true">
+       <symbols>
+          <set name="managed-bean-name" value="businessPerson"/>
+       </symbols>
+    </component>
+
+
+    <component jsfid="basicPersonNamePanel" extends="panelGrid">
+        <attributes>
+           <set name="columns" value="3"/>
+        </attributes>
+        
+        <element renderId="22" jsfid="firstNameLabel" />
+        <element renderId="24" jsfid="firstName" />
+        <element renderId="26" jsfid="firstNameMessage" />
+
+        <element renderId="42" jsfid="lastNameLabel" />
+        <element renderId="46" jsfid="lastName" />
+        <element renderId="48" jsfid="lastNameMessage" />
+        
+    </component> 
+    
+
+    <component jsfid="fullPersonNamePanel" extends="basicPersonNamePanel">
+        <element renderId="10" jsfid="namePrefixLabel" />
+        <element renderId="14" jsfid="namePrefix" />
+        <element renderId="16" jsfid="space" />
+
+        <element renderId="30" jsfid="middleNameLabel" />
+        <element renderId="34" jsfid="middleName" />
+        <element renderId="36" jsfid="space" />
+   
+        <element renderId="50" jsfid="nameSuffixLabel" />
+        <element renderId="54" jsfid="nameSuffix" />
+        <element renderId="56" jsfid="space" />
+    
+    </component> 
+    
+    
+    <component jsfid="businessPersonNamePanel" extends="fullPersonNamePanel">
+    
+        <element renderId="-3" jsfid="businessNameLabel" />
+        <element renderId="-2" jsfid="businessName" />
+        <element renderId="-1" jsfid="space" />
+    
+    </component> 
+    
+
+
+	<component jsfid="widgetsLabel" extends="baseLabel"> 
+		   <attributes>
+			  <set name="value" value="@label" />		
+			  <set name="for"   value="@property" />
+		   </attributes>
+	</component>				
+	<component jsfid="widgetsText" extends="inputText" id="@property"> 
+		   <attributes>
+		      <set name="value" value="#{@managed-bean-name.@property}"/>		
+			  <set name="size" value="@size" />
+			  <set name="maxlength" value="@maxlength" />
+			  <set name="required" value="@required" />
+			  <set name="immediate" value="@immediate"/>
+		   </attributes>
+	</component>
+	<component jsfid="widgetsMessage" extends="baseMessage" > 
+		   <attributes>
+		      <set name="for" value="@property" />		
+		   </attributes>
+	</component>
+	
+		
+   <component jsfid="page1LeftPanel" extends="panelGrid">
+      <attributes>
+         <set name="columns" value="1"/>
+         <set name="width" value="100%"/>
+      </attributes>
+   
+      <element renderId="3" jsfid="outputLink">
+         <attributes>
+            <set name="value" value="http://myfaces.apache.org/"/>
+         </attributes>
+         
+         <element renderId="1" jsfid="outputText" >
+            <attributes>
+               <set name="value" value="MyFaces"/>
+            </attributes>            
+         </element>
+      </element>
+      
+      
+   </component>
+   
+   <component jsfid="page2LeftPanel" extends="page1LeftPanel">
+      
+      <element renderId="2" jsfid="outputLink">
+         <attributes>
+            <set name="value" value="http://www.jsfcentral.com/"/>
+         </attributes>
+         
+         <element renderId="1" jsfid="outputText" >
+            <attributes>
+               <set name="value" value="JSF Central"/>
+            </attributes>            
+         </element>
+      </element>
+      
+   </component>
+
+
+   <component jsfid="page3LeftPanel" extends="page2LeftPanel">
+      
+      
+      <element renderId="1" jsfid="outputLink">
+         <attributes>
+            <set name="value" value="http://struts.apache.org/struts-shale/"/>
+         </attributes>
+         
+         <element renderId="1" jsfid="outputText" >
+            <attributes>
+               <set name="value" value="Struts"/>
+            </attributes>            
+         </element>
+      </element>
+      
+      
+   </component>
+   
+
+</view>

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml?rev=369652&r1=369651&r2=369652&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml (original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml Mon Jan 16 19:16:48 2006
@@ -205,6 +205,13 @@
       <from-outcome>rolodex$viewsource</from-outcome>
       <to-view-id>/rolodex/viewsource.html</to-view-id>
     </navigation-case>
+
+    <!-- Symbols -->
+    <navigation-case>
+      <from-outcome>symbols</from-outcome>
+      <to-view-id>/symbols/home.jsp</to-view-id>
+      <redirect/>
+    </navigation-case>
     
   </navigation-rule>
 
@@ -662,38 +669,147 @@
         <value>#{param.selectedName}</value>
     </managed-property>
   </managed-bean>
-
-
-   <component>
-      <description>Simple navigation component for a data table component.</description>
-      <component-type>org.apache.shale.WebPager</component-type>
-      <component-class>org.apache.shale.usecases.rolodex.WebPager</component-class>
-   </component>	
-
-   <render-kit>		
-      <renderer>
-         <description>Renderer for a simple page navigation data table component.</description>
-         <component-family>org.apache.shale.Pager</component-family>
-         <renderer-type>org.apache.shale.WebPager</renderer-type>
-         <renderer-class>org.apache.shale.usecases.rolodex.WebPagerRenderer</renderer-class>
-      </renderer>
-   </render-kit>
-  
-   <component>
-      <description>Simple column sorter component for a data table component.</description>
-      <component-type>org.apache.shale.HeaderSorter</component-type>
-      <component-class>org.apache.shale.usecases.rolodex.HeaderSorter</component-class>
-   </component>	
-
-   <render-kit>		
-      <renderer>
-         <description>Renderer for a simple column sorter data table component.</description>
-         <component-family>org.apache.shale.Sorter</component-family>
-         <renderer-type>org.apache.shale.HeaderSorter</renderer-type>
-         <renderer-class>org.apache.shale.usecases.rolodex.HeaderSorterRenderer</renderer-class>
-      </renderer>
-   </render-kit>
-  
+
+
+   <component>
+      <description>Simple navigation component for a data table component.</description>
+      <component-type>org.apache.shale.WebPager</component-type>
+      <component-class>org.apache.shale.usecases.rolodex.WebPager</component-class>
+   </component>	
+
+   <render-kit>		
+      <renderer>
+         <description>Renderer for a simple page navigation data table component.</description>
+         <component-family>org.apache.shale.Pager</component-family>
+         <renderer-type>org.apache.shale.WebPager</renderer-type>
+         <renderer-class>org.apache.shale.usecases.rolodex.WebPagerRenderer</renderer-class>
+      </renderer>
+   </render-kit>
+  
+   <component>
+      <description>Simple column sorter component for a data table component.</description>
+      <component-type>org.apache.shale.HeaderSorter</component-type>
+      <component-class>org.apache.shale.usecases.rolodex.HeaderSorter</component-class>
+   </component>	
+
+   <render-kit>		
+      <renderer>
+         <description>Renderer for a simple column sorter data table component.</description>
+         <component-family>org.apache.shale.Sorter</component-family>
+         <renderer-type>org.apache.shale.HeaderSorter</renderer-type>
+         <renderer-class>org.apache.shale.usecases.rolodex.HeaderSorterRenderer</renderer-class>
+      </renderer>
+   </render-kit>
+  
+
+  <!-- Symbols Beans -->
+
+  <managed-bean>
+    <managed-bean-name>symbols$nameReuse</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.RegistrationForm
+    </managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>symbols$page1</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.RegistrationForm
+    </managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>symbols$page2</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.RegistrationForm
+    </managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>symbols$page3</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.RegistrationForm
+    </managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>basicPerson</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.BasicPerson
+    </managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>fullPerson</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.FullPerson
+    </managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>businessPerson</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.symbols.BusinessPerson
+    </managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <!-- Symbols Navigation Rules -->
+
+  <navigation-rule>
+    <from-view-id>/symbols/nameReuse*</from-view-id>
+    <navigation-case>
+      <from-outcome>save</from-outcome>
+      <to-view-id>/symbols/nameReuse.faces</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-outcome>home</from-outcome>
+      <to-view-id>/symbols/home.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
+  <navigation-rule>
+    <from-view-id>/symbols/page1*</from-view-id>
+    <navigation-case>
+      <from-outcome>save</from-outcome>
+      <to-view-id>/symbols/page1.xml</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-outcome>home</from-outcome>
+      <to-view-id>/symbols/home.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
+  <navigation-rule>
+    <from-view-id>/symbols/page2*</from-view-id>
+    <navigation-case>
+      <from-outcome>save</from-outcome>
+      <to-view-id>/symbols/page2.xml</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-outcome>home</from-outcome>
+      <to-view-id>/symbols/home.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
+  <navigation-rule>
+    <from-view-id>/symbols/page3*</from-view-id>
+    <navigation-case>
+      <from-outcome>save</from-outcome>
+      <to-view-id>/symbols/page3.html</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-outcome>home</from-outcome>
+      <to-view-id>/symbols/home.faces</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
 
 
 <!-- DEPRECATED - see profile$logic below -->

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml?rev=369652&r1=369651&r2=369652&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml (original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/web.xml Mon Jan 16 19:16:48 2006
@@ -44,10 +44,16 @@
     <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value>
   </context-param>
   
-   <!-- Clay Configuration Resources -->
+   <!-- Clay Common Configuration Resources -->
    <context-param>
       <param-name>org.apache.shale.clay.COMMON_CONFIG_FILES</param-name>
-      <param-value>/WEB-INF/clay-config.xml</param-value>
+      <param-value>/WEB-INF/clay-config.xml, /WEB-INF/clay-symbols-config.xml</param-value>
+   </context-param>
+
+   <!-- Clay Configuration Full XML view Resources -->
+   <context-param>
+      <param-name>org.apache.shale.clay.FULLXML_CONFIG_FILES</param-name>
+      <param-value>classpath*:org/apache/shale/usecases/symbols/clay-tiles-config.xml</param-value>
    </context-param>
   
   <!-- Shale Application Controller Filter -->

Added: struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,25 @@
+<span jsfid="page3Panel">
+<table>
+    <tr>
+       <td colspan="3">
+          <p>This example shows how a pattern of components, labels, input 
+          text fields and messages can be abstracted into a common template.  
+          </p> 
+       </td>   
+    </tr>
+
+    <tr jsfid="classpath*:org/apache/shale/usecases/symbols/inputTextWidget.html" label="First Name:" 
+        property="firstName" size="20" maxlength="30" 
+        required="true" immediate="false"/>
+    <tr jsfid="classpath*:org/apache/shale/usecases/symbols/inputTextWidget.html" label="Middle Name:" 
+        property="middleName" size="20" maxlength="30" 
+        required="false" immediate="false"/>
+    <tr jsfid="classpath*:org/apache/shale/usecases/symbols/inputTextWidget.html" label="Last Name:" 
+        property="lastName" size="30" maxlength="40" 
+        required="true" immediate="false"/>
+    <tr jsfid="classpath*:org/apache/shale/usecases/symbols/inputTextWidget.html" label="Business Name:" 
+        property="lastName" size="40" maxlength="50" 
+        required="true" immediate="false"/>
+     
+</table>
+</span>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/businessPerson.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/fullperson.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/fullperson.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/fullperson.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/fullperson.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,48 @@
+<span jsfid="page2Panel">
+<table>  
+   <tr>
+      <td colspan="3">
+         <p>This example uses the tapestry like approach for building a dynamic JSF page. 
+            The HTML is only tainted by jsfid attributes.  
+         </p>
+      </td>
+   </tr>
+   
+   <tr>
+      <td><label jsfid="namePrefixLabel">Mock Prefix Label:</label></td>
+      <td><select jsfid="namePrefix">
+             <option value=Mr>Mr.</option>
+          </select>
+      </td>  
+      <td>&nbsp;</td>
+   </tr>
+
+   <tr>
+      <td><label jsfid="firstNameLabel">Mock First Label:</label></td>
+      <td><input jsfid="firstName" type="text"></td>  
+      <td><span jsfid="firstNameMessage">Mock Message</span></td>
+   </tr>
+  
+   <tr>
+      <td><label jsfid="middleNameLabel">Mock Middle Label</label></td>
+      <td><input jsfid="middleName" type="text"></td>  
+      <td>&nbsp;</td>
+   </tr>
+
+   <tr>
+      <td><label jsfid="lastNameLabel">Mock First Label:</label></td>
+      <td><input jsfid="lastName" type="text"></td>  
+      <td><span jsfid="lastNameMessage">Mock Message</span></td>
+   </tr>
+   
+   <tr>
+      <td><label jsfid="nameSuffixLabel">Mock Prefix Label:</label></td>
+      <td><select jsfid="nameSuffix">
+             <option value=JR>JR</option>
+          </select>
+      </td>  
+      <td>&nbsp;</td>
+   </tr>
+   
+</table>
+</span>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/fullperson.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/fullperson.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/header.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/header.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/header.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/header.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1 @@
+<img src="@logo">
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/header.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/header.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/home.jsp
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/home.jsp?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/home.jsp (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/home.jsp Mon Jan 16 19:16:48 2006
@@ -0,0 +1,74 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
+<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
+<%@ taglib prefix="s" uri="http://struts.apache.org/shale/core"%>
+<%@ taglib prefix="clay" uri="http://struts.apache.org/shale/clay-plugin"%>
+
+<%--
+
+ Copyright 2006 The Apache Software Foundation.  
+ 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ 
+      http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+--%>
+
+
+<f:view>
+<html>
+<head>
+<title>Clay Examples</title>
+</head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<body>
+   <h1>Managed Bean Aliasing</h1>
+   <p>This example demonstrates how Clay can use symbols for managed bean aliasing.  
+      It also demonstrates how you can define a person's name and reuse the same 
+      definitions, constructing and extending two other name combinations within 
+      the same page.  Each type of name is bound to a different manged bean.</p>
+   <h:outputLink value="nameReuse.faces">
+     <f:param name="init" value="true"/>
+     <f:verbatim>Name Reuse Example</f:verbatim>
+   </h:outputLink>
+   <br/>
+   <br/>
+   <h1>Generic Tiles Like Layouts</h1>
+   <p>
+      This example demonstrates how you can use symbols similar to how tiles are used.  
+      There is a generic <h:outputLink value="viewsource.html"><f:verbatim>layout</f:verbatim>
+         <f:param name="url" value="/symbols/layout.html"/></h:outputLink> that defines 
+      sections of a typical page having a header, 
+      footer, left navbar and body sections.  The layout is defined as an HTML template, 
+      but the entry point can be a full XML or full HTML template.  There is a central 
+      Clay configuration that is dedicated to full XML views and a base component definition 
+      in the common clay configuration file.  
+      <br/><br/>
+   </p>
+   <h:outputLink value="page1.xml">
+     <f:param name="init" value="true"/>
+     <f:verbatim>Page 1</f:verbatim>
+   </h:outputLink><br/>
+   <h:outputLink value="page2.xml">
+     <f:param name="init" value="true"/>
+     <f:verbatim>Page 2</f:verbatim>
+   </h:outputLink><br/>
+   <h:outputLink value="page3.html">
+     <f:param name="init" value="true"/>
+     <f:verbatim>Page 3</f:verbatim>
+   </h:outputLink><br/>
+   
+</body>
+
+</html>
+</f:view>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/home.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/home.jsp
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/layout.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/layout.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/layout.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/layout.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,19 @@
+<html>
+   <head><title>@title</title></head>
+   <body>
+      <form>
+          <table border="1">
+             <tr>
+                <td id="leftContent" rowspan="3"><span jsfid="clay" clayJsfid="@leftContent" allowBody="false">Left<br/>Content</span></td>
+                <td id="headerContent"><span jsfid="clay" clayJsfid="@headercontent" allowBody="false">Header<br/>Content</span></td>
+             </tr>
+             <tr>
+                <td id="bodyContent"><span jsfid="clay" clayJsfid="@bodycontent" allowBody="false">Body<br/>Content</span></td>
+             </tr>
+             <tr>
+                <td id="footerContent"><span jsfid="clay" clayJsfid="@footercontent" allowBody="false">Footer<br/>Content</span></td>
+             </tr>
+          </table>
+      </form>
+   </body>
+</html>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/layout.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/layout.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp Mon Jan 16 19:16:48 2006
@@ -0,0 +1,51 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
+<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
+<%@ taglib prefix="s" uri="http://struts.apache.org/shale/core"%>
+<%@ taglib prefix="clay" uri="http://struts.apache.org/shale/clay-plugin"%>
+<%--
+
+ Copyright 2006 The Apache Software Foundation.  
+ 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ 
+      http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+--%>
+
+
+<f:view>
+<html>
+<head>
+<title>Clay Name Reuse Example</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<body>
+ <h:form id="names">
+   <h1>Basic Person</h1>
+   <hr>
+   <clay:clay id="basicPerson" jsfid="basicPersonNamePanel" managedBeanName="basicPerson"/>
+   <br>
+   <h1>Full Person</h1>
+   <hr>
+   <clay:clay id="fullPerson" jsfid="fullPersonNamePanel" managedBeanName="fullPerson"/>
+   <br>
+   <h1>Business Person</h1>
+   <hr>
+   <clay:clay id="businessPerson" jsfid="businessPersonNamePanel" managedBeanName="businessPerson"/>
+   <br>
+   <h:commandButton action="#{symbols$nameReuse.save}" value="Save"/> <h:commandButton action="home" value="Home" immediate="true"/>
+ </h:form>        
+</body>
+
+</html>
+</f:view>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/nameReuse.jsp
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/page3.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/page3.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/page3.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/page3.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,7 @@
+<html jsfid="basePage" 
+      bodycontent="/symbols/businessPerson.html"  
+      allowBody="false">
+      
+   <head><title>Mock Header</title></head>
+   <body>The entire document is replaced by the layout.</body>
+</html>
\ No newline at end of file

Propchange: struts/shale/trunk/use-cases/src/web/symbols/page3.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/page3.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Added: struts/shale/trunk/use-cases/src/web/symbols/viewsource.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/symbols/viewsource.html?rev=369652&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/symbols/viewsource.html (added)
+++ struts/shale/trunk/use-cases/src/web/symbols/viewsource.html Mon Jan 16 19:16:48 2006
@@ -0,0 +1,10 @@
+<html>
+<head><title>View Symbols Example Source ("#{param['url']})</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+</head>
+<body>
+<h1>#{param['url']}</h1><a value="home.faces">Back</a>
+<hr><br>
+<pre><span jsfid="clayImport" url="#{param['url']}" escapeXml="true"/></pre>
+</body>
+</html>  

Propchange: struts/shale/trunk/use-cases/src/web/symbols/viewsource.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/shale/trunk/use-cases/src/web/symbols/viewsource.html
------------------------------------------------------------------------------
    svn:keywords = date author id rev

Modified: struts/shale/trunk/use-cases/src/web/usecases.jsp
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/use-cases/src/web/usecases.jsp?rev=369652&r1=369651&r2=369652&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/usecases.jsp (original)
+++ struts/shale/trunk/use-cases/src/web/usecases.jsp Mon Jan 16 19:16:48 2006
@@ -182,9 +182,13 @@
 
   </h:panelGrid>
 
-  <h1><h:outputText     value="#{messages['usecases.clay']}"/></h1>
+  <h1><h:outputText     value="#{messages['usecases.clay']}"/></h1>
   <h:panelGrid        columns="2">
-
+
+    <h:commandLink id="symbols" action="symbols" title="#{messages['usecases.symbols.title']}">
+       <h:outputText     value="#{messages['usecases.symbols']}"/>
+    </h:commandLink>  
+    <f:verbatim>&nbsp;</f:verbatim>
     <h:commandLink         id="rolodex1"
                        action="rolodex$test1" title="#{messages['usecases.rolodex1.title']}">
       <h:outputText     value="#{messages['usecases.rolodex1']}"/>
@@ -225,8 +229,7 @@
        <f:param name="url" value="/rolodex/rolodex.xml"/>
        <h:outputText     value="#{messages['usecases.rolodex.viewsource']}"/>
     </h:commandLink>
-
-
+        
   </h:panelGrid>
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org