You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/06/05 15:16:29 UTC

svn commit: r180085 - in /myfaces/trunk: conf/ src/components/org/apache/myfaces/component/html/ext/ src/components/org/apache/myfaces/renderkit/html/ext/ src/components/org/apache/myfaces/taglib/html/ext/ src/jsfapi/javax/faces/convert/ tlds/ webapps/simple/ webapps/simple/WEB-INF/

Author: mmarinschek
Date: Sun Jun  5 06:16:28 2005
New Revision: 180085

URL: http://svn.apache.org/viewcvs?rev=180085&view=rev
Log:
new extended InputSecret (thanks to Bruno Aranda)

Added:
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.java
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.xml
    myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputSecretTag.java
    myfaces/trunk/webapps/simple/MyFaces Simple.iml
    myfaces/trunk/webapps/simple/WEB-INF/faces-config.xml
    myfaces/trunk/webapps/simple/crossDataTable.jsp
    myfaces/trunk/webapps/simple/dataTable.jsp
Modified:
    myfaces/trunk/conf/faces-config.xml
    myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlSecretRenderer.java
    myfaces/trunk/src/jsfapi/javax/faces/convert/DateTimeConverter.java
    myfaces/trunk/src/jsfapi/javax/faces/convert/NumberConverter.java
    myfaces/trunk/tlds/myfaces_ext.tld
    myfaces/trunk/webapps/simple/displayValueOnly.jsp

Modified: myfaces/trunk/conf/faces-config.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/conf/faces-config.xml?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/conf/faces-config.xml (original)
+++ myfaces/trunk/conf/faces-config.xml Sun Jun  5 06:16:28 2005
@@ -47,6 +47,11 @@
     <component-type>org.apache.myfaces.HtmlInputHidden</component-type>
     <component-class>org.apache.myfaces.component.html.ext.HtmlInputHidden</component-class>
   </component>
+  
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputSecret</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlInputSecret</component-class>
+  </component>
 
   <component>
     <component-type>org.apache.myfaces.HtmlInputText</component-type>
@@ -389,6 +394,12 @@
             <component-family>javax.faces.Panel</component-family>
             <renderer-type>org.apache.myfaces.Group</renderer-type>
             <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlGroupRenderer</renderer-class>
+        </renderer>
+        
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.Secret</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlSecretRenderer</renderer-class>
         </renderer>
 
 		<renderer>

Added: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.java?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.java (added)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.java Sun Jun  5 06:16:28 2005
@@ -0,0 +1,162 @@
+/*
+ * Copyright 2004 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.myfaces.component.html.ext;
+
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
+import org.apache.myfaces.component.UserRoleAware;
+import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.util.HtmlComponentUtils;
+
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+
+/**
+ * @author Bruno Aranda
+ * @version $Revision$ $Date: 2005-06-05 12:55:33 +0200 (Sun, 5 Jun 2005) $
+ */
+public class HtmlInputSecret
+        extends javax.faces.component.html.HtmlInputSecret
+        implements UserRoleAware, DisplayValueOnlyCapable
+{
+
+    public String getClientId(FacesContext context)
+    {
+        String clientId = HtmlComponentUtils.getClientId(this, getRenderer(context), context);
+        if (clientId == null)
+        {
+            clientId = super.getClientId(context);
+        }
+
+        return clientId;
+    }
+
+    //------------------ GENERATED CODE BEGIN (do not modify!) --------------------
+
+    public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlInputSecret";
+    private static final boolean DEFAULT_DISPLAYVALUEONLY = false;
+
+    private String _enabledOnUserRole = null;
+    private String _visibleOnUserRole = null;
+    private Boolean _displayValueOnly = null;
+    private String _displayValueOnlyStyle = null;
+    private String _displayValueOnlyStyleClass = null;
+
+    public HtmlInputSecret()
+    {
+    }
+
+
+    public void setEnabledOnUserRole(String enabledOnUserRole)
+    {
+        _enabledOnUserRole = enabledOnUserRole;
+    }
+
+    public String getEnabledOnUserRole()
+    {
+        if (_enabledOnUserRole != null) return _enabledOnUserRole;
+        ValueBinding vb = getValueBinding("enabledOnUserRole");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
+
+    public void setVisibleOnUserRole(String visibleOnUserRole)
+    {
+        _visibleOnUserRole = visibleOnUserRole;
+    }
+
+    public String getVisibleOnUserRole()
+    {
+        if (_visibleOnUserRole != null) return _visibleOnUserRole;
+        ValueBinding vb = getValueBinding("visibleOnUserRole");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
+
+    public void setDisplayValueOnly(boolean displayValueOnly)
+    {
+        _displayValueOnly = Boolean.valueOf(displayValueOnly);
+    }
+
+    public boolean isDisplayValueOnly()
+    {
+        if (_displayValueOnly != null) return _displayValueOnly.booleanValue();
+        ValueBinding vb = getValueBinding("displayValueOnly");
+        Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+        return v != null ? v.booleanValue() : DEFAULT_DISPLAYVALUEONLY;
+    }
+
+
+    public boolean isSetDisplayValueOnly()
+    {
+        if (_displayValueOnly != null) return true;
+        ValueBinding vb = getValueBinding("displayValueOnly");
+        Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+        return v != null;
+    }
+
+    public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+    {
+        _displayValueOnlyStyle = displayValueOnlyStyle;
+    }
+
+    public String getDisplayValueOnlyStyle()
+    {
+        if (_displayValueOnlyStyle != null) return _displayValueOnlyStyle;
+        ValueBinding vb = getValueBinding("displayValueOnlyStyle");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
+
+    public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+    {
+        _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+    }
+
+    public String getDisplayValueOnlyStyleClass()
+    {
+        if (_displayValueOnlyStyleClass != null) return _displayValueOnlyStyleClass;
+        ValueBinding vb = getValueBinding("displayValueOnlyStyleClass");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
+
+
+    public boolean isRendered()
+    {
+        if (!UserRoleUtils.isVisibleOnUserRole(this)) return false;
+        return super.isRendered();
+    }
+
+    public Object saveState(FacesContext context)
+    {
+        Object values[] = new Object[6];
+        values[0] = super.saveState(context);
+        values[1] = _enabledOnUserRole;
+        values[2] = _visibleOnUserRole;
+        values[3] = _displayValueOnly;
+        values[4] = _displayValueOnlyStyle;
+        values[5] = _displayValueOnlyStyleClass;
+        return ((Object) (values));
+    }
+
+    public void restoreState(FacesContext context, Object state)
+    {
+        Object values[] = (Object[])state;
+        super.restoreState(context, values[0]);
+        _enabledOnUserRole = (String)values[1];
+        _visibleOnUserRole = (String)values[2];
+        _displayValueOnly = (Boolean)values[3];
+        _displayValueOnlyStyle = (String)values[4];
+        _displayValueOnlyStyleClass = (String)values[5];
+    }
+    //------------------ GENERATED CODE END ---------------------------------------
+}

Added: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.xml?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.xml (added)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputSecret.xml Sun Jun  5 06:16:28 2005
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE component PUBLIC
+  "-//MyFaces//DTD MyFaces component def 1.0//EN"
+  "http://myfaces.apache.org/dtd/Component.dtd">
+<component generateStateMethods="true" generateUserRoleMethods="true" >
+    <component-class>org.apache.myfaces.component.html.ext.HtmlInputSecret</component-class>
+    <base-class>javax.faces.component.html.HtmlInputSecret</base-class>
+    <component-type>org.apache.myfaces.HtmlInputSecret</component-type>
+    <field>
+        <name>enabledOnUserRole</name>
+        <type>java.lang.String</type>
+    </field>
+    <field>
+        <name>visibleOnUserRole</name>
+        <type>java.lang.String</type>
+    </field>
+    <field>
+        <name>displayValueOnly</name>
+        <type>boolean</type>
+        <default-value>false</default-value>
+    </field>
+	<field>
+        <name>displayValueOnlyStyle</name>
+        <type>java.lang.String</type>
+    </field>
+	<field>
+        <name>displayValueOnlyStyleClass</name>
+        <type>java.lang.String</type>
+    </field>
+</component>

Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlSecretRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlSecretRenderer.java?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlSecretRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlSecretRenderer.java Sun Jun  5 06:16:28 2005
@@ -15,15 +15,24 @@
  */
 package org.apache.myfaces.renderkit.html.ext;
 
+import java.io.IOException;
+
 import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlInputText;
+import org.apache.myfaces.renderkit.JSFAttr;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
 import org.apache.myfaces.renderkit.html.HtmlSecretRendererBase;
 
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
 import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
 
 
 /**
  * @author Manfred Geiler (latest modification by $Author$)
+ * @author Bruno Aranda
  * @version $Revision$ $Date$
  */
 public class HtmlSecretRenderer
@@ -40,4 +49,35 @@
             return super.isDisabled(facesContext, uiComponent);
         }
     }
+    
+    public void encodeEnd(FacesContext facesContext, UIComponent component)
+    throws IOException
+	{
+	    if(HtmlRendererUtils.isDisplayValueOnly(component))
+	    {
+	    	renderInputValueOnly(facesContext,
+	                (UIInput) component);
+	    }
+	    else
+	    {
+	        super.encodeEnd(facesContext, component);
+	    }
+	}
+	
+	protected void renderInputValueOnly(FacesContext facesContext, UIInput uiInput)
+	    throws IOException
+	{
+	    ResponseWriter writer = facesContext.getResponseWriter();
+	
+	    writer.startElement(HTML.SPAN_ELEM, uiInput);
+	
+	    HtmlRendererUtils.writeIdIfNecessary(writer, uiInput, facesContext);
+	
+	    HtmlRendererUtils.renderDisplayValueOnlyAttributes(uiInput, writer);
+	
+	    // renders five asterisks instead of the component value
+	    writer.writeText("*****", JSFAttr.VALUE_ATTR);
+	
+	    writer.endElement(HTML.SPAN_ELEM);
+	}
 }

Added: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputSecretTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputSecretTag.java?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputSecretTag.java (added)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputSecretTag.java Sun Jun  5 06:16:28 2005
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2004 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.myfaces.taglib.html.ext;
+
+import javax.faces.component.UIComponent;
+
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
+import org.apache.myfaces.component.UserRoleAware;
+import org.apache.myfaces.component.html.ext.HtmlInputSecret;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.taglib.html.HtmlInputSecretTagBase;
+
+/**
+ * @author Bruno Aranda 
+ * @version $Revision$ $Date: 2005-06-05 13:08:33 +0200 (Sun, 5 Jun 2005) $
+ */
+public class HtmlInputSecretTag
+        extends HtmlInputSecretTagBase
+{
+    public String getComponentType()
+    {
+        return HtmlInputSecret.COMPONENT_TYPE;
+    }
+
+    public String getRendererType()
+    {
+        return "org.apache.myfaces.Secret";
+    }
+
+    private String _enabledOnUserRole;
+    private String _visibleOnUserRole;
+    private String _datafld;
+    private String _datasrc;
+    private String _dataformatas;
+
+    private String _displayValueOnly;
+	private String _displayValueOnlyStyle;
+	private String _displayValueOnlyStyleClass;
+
+    public void release() {
+        super.release();
+
+        _enabledOnUserRole=null;
+        _visibleOnUserRole=null;
+        _datafld=null;
+        _datasrc=null;
+        _dataformatas=null;
+        _displayValueOnly=null;
+        _displayValueOnlyStyle=null;
+        _displayValueOnlyStyleClass=null;
+    }
+
+    protected void setProperties(UIComponent component)
+    {
+        super.setProperties(component);
+        setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
+        setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+        setStringProperty(component, HTML.DATAFLD_ATTR, _datafld);
+        setStringProperty(component, HTML.DATASRC_ATTR, _datasrc);
+        setStringProperty(component, HTML.DATAFORMATAS_ATTR, _dataformatas);
+        setBooleanProperty(component, DisplayValueOnlyCapable.DISPLAY_VALUE_ONLY_ATTR, _displayValueOnly);
+        setStringProperty(component, DisplayValueOnlyCapable.DISPLAY_VALUE_ONLY_STYLE_ATTR, _displayValueOnlyStyle);
+        setStringProperty(component, DisplayValueOnlyCapable.DISPLAY_VALUE_ONLY_STYLE_CLASS_ATTR, _displayValueOnlyStyleClass);
+    }
+
+    public void setEnabledOnUserRole(String enabledOnUserRole)
+    {
+        _enabledOnUserRole = enabledOnUserRole;
+    }
+
+    public void setVisibleOnUserRole(String visibleOnUserRole)
+    {
+        _visibleOnUserRole = visibleOnUserRole;
+    }
+
+    public void setDisplayValueOnly(String displayValueOnly)
+    {
+        _displayValueOnly = displayValueOnly;
+    }
+
+    public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+    {
+        _displayValueOnlyStyle = displayValueOnlyStyle;
+    }
+
+    public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+    {
+        _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+    }
+    
+    public void setDatafld(String datafld)
+    {
+        _datafld = datafld;
+    }
+
+    public void setDatasrc(String datasrc)
+    {
+        _datasrc = datasrc;
+    }
+
+    public void setDataformatas(String dataformatas)
+    {
+        _dataformatas = dataformatas;
+    }
+}

Modified: myfaces/trunk/src/jsfapi/javax/faces/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/jsfapi/javax/faces/convert/DateTimeConverter.java?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/src/jsfapi/javax/faces/convert/DateTimeConverter.java (original)
+++ myfaces/trunk/src/jsfapi/javax/faces/convert/DateTimeConverter.java Sun Jun  5 06:16:28 2005
@@ -31,26 +31,26 @@
 public class DateTimeConverter
         implements Converter, StateHolder
 {
-    private static final String CONVERSION_MESSAGE_ID = "javax.faces.convert.DateTimeConverter.CONVERSION";
+    protected static final String CONVERSION_MESSAGE_ID = "javax.faces.convert.DateTimeConverter.CONVERSION";
 
     // FIELDS
     public static final String CONVERTER_ID = "javax.faces.DateTime";
-    private static final String TYPE_DATE = "date";
-    private static final String TYPE_TIME = "time";
-    private static final String TYPE_BOTH = "both";
-    private static final String STYLE_DEFAULT = "default";
-    private static final String STYLE_MEDIUM = "medium";
-    private static final String STYLE_SHORT = "short";
-    private static final String STYLE_LONG = "long";
-    private static final String STYLE_FULL = "full";
-
-    private String _dateStyle;
-    private Locale _locale;
-    private String _pattern;
-    private String _timeStyle;
-    private TimeZone _timeZone;
-    private String _type;
-    private boolean _transient;
+    protected static final String TYPE_DATE = "date";
+    protected static final String TYPE_TIME = "time";
+    protected static final String TYPE_BOTH = "both";
+    protected static final String STYLE_DEFAULT = "default";
+    protected static final String STYLE_MEDIUM = "medium";
+    protected static final String STYLE_SHORT = "short";
+    protected static final String STYLE_LONG = "long";
+    protected static final String STYLE_FULL = "full";
+
+    protected String _dateStyle;
+    protected Locale _locale;
+    protected String _pattern;
+    protected String _timeStyle;
+    protected TimeZone _timeZone;
+    protected String _type;
+    protected boolean _transient;
 
     // CONSTRUCTORS
     public DateTimeConverter()
@@ -117,7 +117,7 @@
         }
     }
 
-    private DateFormat getDateFormat()
+    protected DateFormat getDateFormat()
     {
         String type = getType();
         DateFormat format = null;
@@ -146,7 +146,7 @@
         return format;
     }
 
-    private int calcStyle(String name)
+    protected int calcStyle(String name)
     {
         if (name.equals(STYLE_DEFAULT))
         {

Modified: myfaces/trunk/src/jsfapi/javax/faces/convert/NumberConverter.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/jsfapi/javax/faces/convert/NumberConverter.java?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/src/jsfapi/javax/faces/convert/NumberConverter.java (original)
+++ myfaces/trunk/src/jsfapi/javax/faces/convert/NumberConverter.java Sun Jun  5 06:16:28 2005
@@ -32,35 +32,35 @@
 public class NumberConverter
         implements Converter, StateHolder
 {
-    private static final String CONVERSION_MESSAGE_ID = "javax.faces.convert.NumberConverter.CONVERSION";
+    protected static final String CONVERSION_MESSAGE_ID = "javax.faces.convert.NumberConverter.CONVERSION";
 
     // FIELDS
-    public static final String CONVERTER_ID = "javax.faces.Number";
+    protected static final String CONVERTER_ID = "javax.faces.Number";
 
-    public static final boolean JAVA_VERSION_14;
+    protected static final boolean JAVA_VERSION_14;
 
     static
     {
         JAVA_VERSION_14 = checkJavaVersion14();
     }
 
-    private String _currencyCode;
-    private String _currencySymbol;
-    private Locale _locale;
-    private int _maxFractionDigits;
-    private int _maxIntegerDigits;
-    private int _minFractionDigits;
-    private int _minIntegerDigits;
-    private String _pattern;
-    private String _type;
-    private boolean _groupingUsed = true;
-    private boolean _integerOnly = false;
-    private boolean _transient;
-
-    private boolean _maxFractionDigitsSet;
-    private boolean _maxIntegerDigitsSet;
-    private boolean _minFractionDigitsSet;
-    private boolean _minIntegerDigitsSet;
+    protected String _currencyCode;
+    protected String _currencySymbol;
+    protected Locale _locale;
+    protected int _maxFractionDigits;
+    protected int _maxIntegerDigits;
+    protected int _minFractionDigits;
+    protected int _minIntegerDigits;
+    protected String _pattern;
+    protected String _type;
+    protected boolean _groupingUsed = true;
+    protected boolean _integerOnly = false;
+    protected boolean _transient;
+
+    protected boolean _maxFractionDigitsSet;
+    protected boolean _maxIntegerDigitsSet;
+    protected boolean _minFractionDigitsSet;
+    protected boolean _minIntegerDigitsSet;
 
 
     // CONSTRUCTORS
@@ -127,7 +127,7 @@
         }
     }
 
-    private NumberFormat getNumberFormat(FacesContext facesContext)
+    protected NumberFormat getNumberFormat(FacesContext facesContext)
     {
         Locale lokale = _locale != null ? _locale : facesContext.getViewRoot().getLocale();
 
@@ -158,7 +158,7 @@
         throw new ConverterException("Cannot get NumberFormat, illegal type " + _type);
     }
 
-    private void formatCurrency(NumberFormat format)
+    protected void formatCurrency(NumberFormat format)
     {
         if (_currencyCode == null && _currencySymbol == null)
         {
@@ -376,7 +376,7 @@
         _type = type;
     }
 
-    private static boolean checkJavaVersion14()
+    protected static boolean checkJavaVersion14()
     {
         String version = System.getProperty("java.version");
         if (version == null)

Modified: myfaces/trunk/tlds/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/trunk/tlds/myfaces_ext.tld?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/tlds/myfaces_ext.tld (original)
+++ myfaces/trunk/tlds/myfaces_ext.tld Sun Jun  5 06:16:28 2005
@@ -235,6 +235,36 @@
         &ui_input_attributes;
         &ext_forceId_attribute;
     </tag>
+    
+    <!-- inputSecret -->
+    <tag>
+        <name>inputSecret</name>
+        <tag-class>org.apache.myfaces.taglib.html.ext.HtmlInputSecretTag</tag-class>
+        <body-content>JSP</body-content>
+        <description>
+            Extends standard inputSecret.
+        </description>
+         <attribute><name>datafld</name>     <required>false</required>  <rtexprvalue>false</rtexprvalue><type>java.lang.String</type></attribute>
+        <attribute><name>datasrc</name>     <required>false</required>  <rtexprvalue>false</rtexprvalue><type>java.lang.String</type></attribute>
+        <attribute><name>dataformatas</name><required>false</required>  <rtexprvalue>false</rtexprvalue><type>java.lang.String</type></attribute>
+        &ui_input_attributes;
+        &html_input_attributes;
+        &html_universal_attributes;
+        &html_event_handler_attributes;
+        &user_role_attributes;
+        &ext_forceId_attribute;
+        &display_value_only_attributes;
+        <!-- SecretRenderer attributes -->
+        <attribute>
+            <name>redisplay</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+            <description>
+                If true, the value will be re-sent (in plaintext) when the form
+                is rerendered (see JSF.7.4.4). Default is false.
+            </description>
+        </attribute>
+    </tag>
 
     <!-- inputText -->
     <tag>

Added: myfaces/trunk/webapps/simple/MyFaces Simple.iml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/MyFaces%20Simple.iml?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/webapps/simple/MyFaces Simple.iml (added)
+++ myfaces/trunk/webapps/simple/MyFaces Simple.iml Sun Jun  5 06:16:28 2005
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="J2EE_WEB_MODULE" j2ee-integration="Tomcat Server">
+  <component name="ModuleRootManager" />
+  <component name="NewModuleRootManager">
+    <output url="file://$MODULE_DIR$/WEB-INF/classes" />
+    <exclude-output />
+    <exploded url="file://$MODULE_DIR$" />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/commons-codec-1.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/commons-el.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/commons-fileupload-1.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/commons-logging.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/commons-validator.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/jakarta-oro.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/jsp-2.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/jstl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/WEB-INF/lib/log4j-1.2.8.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="Tomcat" level="application_server_libraries" />
+    <orderEntry type="module" module-name="Myfaces" />
+    <orderEntryProperties />
+  </component>
+  <component name="WebModuleBuildComponent">
+    <setting name="EXPLODED_URL" value="file://$MODULE_DIR$" />
+    <setting name="EXPLODED_ENABLED" value="true" />
+    <setting name="JAR_URL" value="file://" />
+    <setting name="JAR_ENABLED" value="false" />
+    <setting name="SYNC_EXPLODED_DIR" value="false" />
+    <setting name="BUILD_ON_FRAME_DEACTIVATION" value="false" />
+    <setting name="RUN_JASPER_VALIDATION" value="false" />
+  </component>
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="Myfaces">
+      <attribute name="method" value="4" />
+      <attribute name="URI" value="&lt;N/A&gt;" />
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-beanutils-1.6.1.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-beanutils-1.6.1.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-codec-1.2.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-codec-1.2.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-collections-3.0.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-collections-3.0.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-digester-1.5.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-digester-1.5.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-logging.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-logging.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/jstl.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/jstl.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/myfaces.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/myfaces.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-fileupload-1.0.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/optional/commons-fileupload-1.0.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-validator.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/optional/commons-validator.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/jakarta-oro.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/optional/jakarta-oro.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/log4j-1.2.8.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/optional/log4j-1.2.8.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/struts.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/optional/struts.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/portlet-api-1.0.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/portlet-api-1.0.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/tlddoc.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/tlddoc.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/xdoclet-1.2.1.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/xdoclet-1.2.1.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/xjavadoc-1.0.3.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/xjavadoc-1.0.3.jar!/</url>
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/WEB-INF/web.xml" version="2.3" />
+    <webroots>
+      <root url="file://$MODULE_DIR$" relative="/" />
+      <root url="file://$MODULE_DIR$/WEB-INF" relative="/WEB-INF" />
+    </webroots>
+  </component>
+  <component name="WeblogicWebModuleProperties">
+    <option name="IS_RUN_APPC" value="false" />
+  </component>
+</module>
+

Added: myfaces/trunk/webapps/simple/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/WEB-INF/faces-config.xml?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/webapps/simple/WEB-INF/faces-config.xml (added)
+++ myfaces/trunk/webapps/simple/WEB-INF/faces-config.xml Sun Jun  5 06:16:28 2005
@@ -0,0 +1,690 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!DOCTYPE faces-config PUBLIC
+ "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+
+<!--
+ * Copyright 2004 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.
+-->
+
+<faces-config xmlns="http://java.sun.com/JSF/Configuration">
+
+
+  <!-- MyFaces extended standard components (in alphabetical order) -->
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCommandButton</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlCommandButton</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCommandLink</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlCommandLink</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlDataTable</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlDataTable</component-class>
+  </component>
+  <lifecycle>
+    <phase-listener>org.apache.myfaces.component.html.ext.HtmlDataTablePhaseListener</phase-listener>
+  </lifecycle>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputHidden</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlInputHidden</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputText</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlInputText</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputTextarea</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlInputTextarea</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlMessage</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlMessage</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlMessages</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlMessages</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlOutputLabel</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlOutputLabel</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlOutputText</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlOutputText</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelGrid</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlPanelGrid</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelGroup</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlPanelGroup</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlSelectBooleanCheckbox</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlSelectBooleanCheckbox</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlSelectManyCheckbox</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlSelectManyCheckbox</component-class>
+  </component>
+
+    <component>
+      <component-type>org.apache.myfaces.HtmlSelectManyListbox</component-type>
+      <component-class>org.apache.myfaces.component.html.ext.HtmlSelectManyListbox</component-class>
+    </component>
+
+    <component>
+      <component-type>org.apache.myfaces.HtmlSelectManyMenu</component-type>
+      <component-class>org.apache.myfaces.component.html.ext.HtmlSelectManyMenu</component-class>
+    </component>
+
+    <component>
+      <component-type>org.apache.myfaces.HtmlSelectOneListbox</component-type>
+      <component-class>org.apache.myfaces.component.html.ext.HtmlSelectOneListbox</component-class>
+    </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlSelectOneMenu</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlSelectOneMenu</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlSelectOneRadio</component-type>
+    <component-class>org.apache.myfaces.component.html.ext.HtmlSelectOneRadio</component-class>
+  </component>
+
+
+  <!-- MyFaces custom components (in alphabetical order) -->
+
+  <component>
+    <component-type>org.apache.myfaces.AliasBean</component-type>
+    <component-class>org.apache.myfaces.custom.aliasbean.AliasBean</component-class>
+  </component>
+  
+  <component>
+    <component-type>org.apache.myfaces.AliasBeansScope</component-type>
+    <component-class>org.apache.myfaces.custom.aliasbean.AliasBeansScope</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.Buffer</component-type>
+    <component-class>org.apache.myfaces.custom.buffer.Buffer</component-class>
+  </component>
+
+  <component>
+     <component-type>org.apache.myfaces.Div</component-type>
+     <component-class>org.apache.myfaces.custom.div.Div</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCheckbox</component-type>
+    <component-class>org.apache.myfaces.custom.checkbox.HtmlCheckbox</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCommandNavigation</component-type>
+    <component-class>org.apache.myfaces.custom.navigation.HtmlCommandNavigation</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCommandSortHeader</component-type>
+    <component-class>org.apache.myfaces.custom.sortheader.HtmlCommandSortHeader</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.InputHtml</component-type>
+    <component-class>org.apache.myfaces.custom.inputHtml.InputHtml</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputCalendar</component-type>
+    <component-class>org.apache.myfaces.custom.calendar.HtmlInputCalendar</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputDate</component-type>
+    <component-class>org.apache.myfaces.custom.date.HtmlInputDate</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlInputFileUpload</component-type>
+    <component-class>org.apache.myfaces.custom.fileupload.HtmlInputFileUpload</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlDataList</component-type>
+    <component-class>org.apache.myfaces.custom.datalist.HtmlDataList</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlDataScroller</component-type>
+    <component-class>org.apache.myfaces.custom.datascroller.HtmlDataScroller</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlJsValueSet</component-type>
+    <component-class>org.apache.myfaces.custom.jsvalueset.HtmlJsValueSet</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.JsValueChangeListener</component-type>
+    <component-class>org.apache.myfaces.custom.jslistener.JsValueChangeListener</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlNewspaperTable</component-type>
+    <component-class>org.apache.myfaces.custom.newspaper.HtmlNewspaperTable</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelLayout</component-type>
+    <component-class>org.apache.myfaces.custom.layout.HtmlPanelLayout</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelNavigation</component-type>
+    <component-class>org.apache.myfaces.custom.navigation.HtmlPanelNavigation</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelTab</component-type>
+    <component-class>org.apache.myfaces.custom.tabbedpane.HtmlPanelTab</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlPanelTabbedPane</component-type>
+    <component-class>org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlCollapsiblePanel</component-type>
+    <component-class>org.apache.myfaces.custom.collapsiblepanel.HtmlCollapsiblePanel</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlRadio</component-type>
+    <component-class>org.apache.myfaces.custom.radio.HtmlRadio</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTree2</component-type>
+      <component-class>org.apache.myfaces.custom.tree2.HtmlTree</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTree</component-type>
+      <component-class>org.apache.myfaces.custom.tree.HtmlTree</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTreeNode</component-type>
+      <component-class>org.apache.myfaces.custom.tree.HtmlTreeNode</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTreeImageCommandLink</component-type>
+      <component-class>org.apache.myfaces.custom.tree.HtmlTreeImageCommandLink</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTreeColumn</component-type>
+      <component-class>org.apache.myfaces.custom.tree.HtmlTreeColumn</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.HtmlTreeCheckbox</component-type>
+      <component-class>org.apache.myfaces.custom.tree.HtmlTreeCheckbox</component-class>
+  </component>
+
+  <component>
+      <component-type>org.apache.myfaces.JSCookMenu</component-type>
+      <component-class>org.apache.myfaces.custom.navmenu.jscookmenu.HtmlCommandJSCookMenu</component-class>
+  </component>
+
+    <component>
+        <component-type>org.apache.myfaces.NavigationMenuItem</component-type>
+        <component-class>org.apache.myfaces.custom.navmenu.UINavigationMenuItem</component-class>
+    </component>
+
+
+    <component>
+        <component-type>org.apache.myfaces.HtmlPanelStack</component-type>
+        <component-class>org.apache.myfaces.custom.panelstack.HtmlPanelStack</component-class>
+    </component>
+
+    <component>
+        <component-type>org.apache.myfaces.HtmlPopup</component-type>
+        <component-class>org.apache.myfaces.custom.popup.HtmlPopup</component-class>
+    </component>
+
+  <component>
+      <component-type>org.apache.myfaces.RssTicker</component-type>
+      <component-class>org.apache.myfaces.custom.rssticker.HtmlRssTicker</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.SaveState</component-type>
+    <component-class>org.apache.myfaces.custom.savestate.UISaveState</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.SelectOneCountry</component-type>
+    <component-class>org.apache.myfaces.custom.selectOneCountry.SelectOneCountry</component-class>
+  </component>
+
+  <component>
+        <component-type>org.apache.myfaces.Stylesheet</component-type>
+      <component-class>org.apache.myfaces.custom.stylesheet.Stylesheet</component-class>
+  </component>
+
+  <component>
+    <component-type>org.apache.myfaces.HtmlSwapImage</component-type>
+    <component-class>org.apache.myfaces.custom.swapimage.HtmlSwapImage</component-class>
+  </component>
+
+	<component>
+		<component-type>org.apache.myfaces.Columns</component-type>
+		<component-class>org.apache.myfaces.component.UIColumns</component-class>
+	</component>
+
+    <!-- additional "by type" converters -->
+
+    <converter>
+        <converter-for-class>java.math.BigDecimal</converter-for-class>
+        <converter-class>javax.faces.convert.BigDecimalConverter</converter-class>
+    </converter>
+
+    <converter>
+        <converter-for-class>java.math.BigInteger</converter-for-class>
+        <converter-class>javax.faces.convert.BigIntegerConverter</converter-class>
+    </converter>
+
+    <converter>
+        <converter-for-class>java.util.Date</converter-for-class>
+        <converter-class>javax.faces.convert.DateTimeConverter</converter-class>
+    </converter>
+
+
+    <!-- non standard converters -->
+
+    <converter>
+        <converter-for-class>[Ljava.lang.String;</converter-for-class>
+        <converter-class>org.apache.myfaces.convert.StringArrayConverter</converter-class>
+    </converter>
+
+    <converter>
+        <converter-for-class>org.apache.myfaces.custom.fileupload.UploadedFile</converter-for-class>
+        <converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
+    </converter>
+
+
+
+    <!-- MyFaces Renderkit Extensions -->
+
+    <render-kit>
+        <render-kit-id>HTML_BASIC</render-kit-id>
+
+        <!-- extended standard renderers -->
+
+        <renderer>
+            <component-family>javax.faces.Command</component-family>
+            <renderer-type>org.apache.myfaces.Button</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlButtonRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Command</component-family>
+            <renderer-type>org.apache.myfaces.Link</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlLinkRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Data</component-family>
+            <renderer-type>org.apache.myfaces.Table</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.Grid</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlGridRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.Group</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlGroupRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.Text</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlTextRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.Textarea</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlTextareaRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Message</component-family>
+            <renderer-type>org.apache.myfaces.Message</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Messages</component-family>
+            <renderer-type>org.apache.myfaces.Messages</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlMessagesRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Output</component-family>
+            <renderer-type>org.apache.myfaces.Text</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlTextRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectBoolean</component-family>
+            <renderer-type>org.apache.myfaces.Checkbox</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlCheckboxRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectMany</component-family>
+            <renderer-type>org.apache.myfaces.Checkbox</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlCheckboxRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectOne</component-family>
+            <renderer-type>org.apache.myfaces.Menu</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlMenuRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectMany</component-family>
+            <renderer-type>org.apache.myfaces.Menu</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlMenuRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectOne</component-family>
+            <renderer-type>org.apache.myfaces.Listbox</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlListboxRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectMany</component-family>
+            <renderer-type>org.apache.myfaces.Listbox</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlListboxRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.SelectOne</component-family>
+            <renderer-type>org.apache.myfaces.Radio</renderer-type>
+            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlRadioRenderer</renderer-class>
+        </renderer>
+
+
+        <!-- custom component renderers -->
+
+        <renderer>
+            <component-family>javax.faces.Data</component-family>
+            <renderer-type>org.apache.myfaces.AliasBean</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.aliasbean.AliasBeanRenderer</renderer-class>
+        </renderer>
+        
+        <renderer>
+            <component-family>javax.faces.Data</component-family>
+            <renderer-type>org.apache.myfaces.AliasBeansScope</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.aliasbean.AliasBeansScopeRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Data</component-family>
+            <renderer-type>org.apache.myfaces.Buffer</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.buffer.BufferRenderer</renderer-class>
+        </renderer>
+
+		<renderer>
+			<component-family>org.apache.myfaces.Checkbox</component-family>
+			<renderer-type>org.apache.myfaces.Checkbox</renderer-type>
+			<renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlCheckboxRenderer</renderer-class>
+		</renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.DataScroller</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.datascroller.HtmlDataScrollerRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.Calendar</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.calendar.HtmlCalendarRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.Date</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.date.HtmlDateRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.FileUpload</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.fileupload.HtmlFileUploadRenderer</renderer-class>
+        </renderer>
+
+
+        <renderer>
+            <component-family>javax.faces.Input</component-family>
+            <renderer-type>org.apache.myfaces.InputHtml</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.inputHtml.InputHtmlRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.Popup</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.popup.HtmlPopupRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.Layout</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.layout.HtmlLayoutRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.Navigation</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.navigation.HtmlNavigationRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Command</component-family>
+            <renderer-type>org.apache.myfaces.Navigation</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.navigation.HtmlNavigationRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Command</component-family>
+            <renderer-type>org.apache.myfaces.JSCookMenu</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.navmenu.jscookmenu.HtmlJSCookMenuRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Command</component-family>
+            <renderer-type>org.apache.myfaces.SortHeader</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.sortheader.HtmlSortHeaderRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+            <component-family>javax.faces.Panel</component-family>
+            <renderer-type>org.apache.myfaces.TabbedPane</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer</renderer-class>
+        </renderer>
+
+	  <renderer>
+			<component-family>javax.faces.Panel</component-family>
+			<renderer-type>org.apache.myfaces.CollapsiblePanel</renderer-type>
+			<renderer-class>org.apache.myfaces.custom.collapsiblepanel.HtmlCollapsiblePanelRenderer</renderer-class>
+	  </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Data</component-family>
+          <renderer-type>org.apache.myfaces.List</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.datalist.HtmlListRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Data</component-family>
+          <renderer-type>org.apache.myfaces.HtmlNewspaperTable</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.newspaper.HtmlNewspaperTableRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Output</component-family>
+          <renderer-type>org.apache.myfaces.Ticker</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.rssticker.HtmlRssTickerRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Output</component-family>
+          <renderer-type>org.apache.myfaces.JsValueSet</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.jsvalueset.HtmlJsValueSetRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Output</component-family>
+          <renderer-type>org.apache.myfaces.JsValueChangeListener</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.jslistener.JsValueChangeListenerRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>org.apache.myfaces.Radio</component-family>
+          <renderer-type>org.apache.myfaces.Radio</renderer-type>
+          <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlRadioRenderer</renderer-class>
+      </renderer>
+
+		<renderer>
+            <component-family>javax.faces.SelectOne</component-family>
+            <renderer-type>org.apache.myfaces.SelectOneCountryRenderer</renderer-type>
+            <renderer-class>org.apache.myfaces.custom.selectOneCountry.SelectOneCountryRenderer</renderer-class>
+        </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Output</component-family>
+          <renderer-type>org.apache.myfaces.Stylesheet</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.stylesheet.StylesheetRenderer</renderer-class>
+      </renderer>
+
+      <renderer>
+          <component-family>javax.faces.Output</component-family>
+          <renderer-type>org.apache.myfaces.DivRenderer</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.div.DivRenderer</renderer-class>
+      </renderer>
+
+       <renderer>
+          <component-family>org.apache.myfaces.HtmlTree2</component-family>
+          <renderer-type>org.apache.myfaces.HtmlTree2</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.tree2.HtmlTreeRenderer</renderer-class>
+       </renderer>
+
+       <renderer>
+          <component-family>org.apache.myfaces.HtmlTree</component-family>
+          <renderer-type>org.apache.myfaces.HtmlTree</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.tree.renderkit.html.HtmlTreeRenderer</renderer-class>
+       </renderer>
+
+       <renderer>
+          <component-family>org.apache.myfaces.HtmlTree</component-family>
+          <renderer-type>org.apache.myfaces.HtmlTreeImageCommandLink</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.tree.renderkit.html.HtmlTreeImageCommandLinkRenderer</renderer-class>
+       </renderer>
+
+       <renderer>
+          <component-family>org.apache.myfaces.HtmlTreeCheckbox</component-family>
+          <renderer-type>org.apache.myfaces.HtmlTreeCheckbox</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.tree.renderkit.html.HtmlTreeCheckboxRenderer</renderer-class>
+       </renderer>
+
+       <renderer>
+          <component-family>javax.faces.Command</component-family>
+          <renderer-type>org.apache.myfaces.HtmlTreeNode</renderer-type>
+          <renderer-class>org.apache.myfaces.custom.tree.renderkit.html.HtmlTreeNodeRenderer</renderer-class>
+       </renderer>
+
+        <renderer>
+           <component-family>javax.faces.Panel</component-family>
+           <renderer-type>org.apache.myfaces.PanelStack</renderer-type>
+           <renderer-class>org.apache.myfaces.custom.panelstack.HtmlPanelStackRenderer</renderer-class>
+        </renderer>
+
+        <renderer>
+           <component-family>javax.faces.Graphic</component-family>
+           <renderer-type>org.apache.myfaces.SwapImage</renderer-type>
+           <renderer-class>org.apache.myfaces.custom.swapimage.HtmlSwapImageRenderer</renderer-class>
+        </renderer>
+
+    </render-kit>
+
+    <!--custom validators based upon jakarta commons validator-->
+	<validator>
+		<validator-id>org.apache.myfaces.validator.CreditCard</validator-id>
+		<validator-class>org.apache.myfaces.custom.creditcardvalidator.CreditCardValidator</validator-class>
+	</validator>
+
+	<validator>
+		<validator-id>org.apache.myfaces.validator.Email</validator-id>
+		<validator-class>org.apache.myfaces.custom.emailvalidator.EmailValidator</validator-class>
+	</validator>
+
+	<validator>
+		<validator-id>org.apache.myfaces.validator.ISBN</validator-id>
+		<validator-class>org.apache.myfaces.custom.isbnvalidator.ISBNValidator</validator-class>
+	</validator>
+
+	<validator>
+		<validator-id>org.apache.myfaces.validator.Equal</validator-id>
+		<validator-class>org.apache.myfaces.custom.equalvalidator.EqualValidator</validator-class>
+	</validator>
+
+	<validator>
+		<validator-id>org.apache.myfaces.validator.RegExpr</validator-id>
+		<validator-class>org.apache.myfaces.custom.regexprvalidator.RegExprValidator</validator-class>
+	</validator>
+</faces-config>

Added: myfaces/trunk/webapps/simple/crossDataTable.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/crossDataTable.jsp?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/webapps/simple/crossDataTable.jsp (added)
+++ myfaces/trunk/webapps/simple/crossDataTable.jsp Sun Jun  5 06:16:28 2005
@@ -0,0 +1,130 @@
+<%@ page session="false" contentType="text/html;charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x"%>
+<html>
+
+<!--
+/*
+ * Copyright 2004 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.
+ */
+//-->
+
+<%@include file="inc/head.inc"%>
+
+<body>
+
+<!--
+managed beans used:
+    countryList
+-->
+
+<f:view>
+
+	<f:loadBundle
+		basename="org.apache.myfaces.examples.resource.example_messages"
+		var="example_messages" />
+
+	<x:panelLayout id="page" layout="#{globalOptions.pageLayout}"
+		styleClass="pageLayout" headerClass="pageHeader"
+		navigationClass="pageNavigation" bodyClass="pageBody"
+		footerClass="pageFooter">
+
+		<f:facet name="header">
+			<f:subview id="header">
+				<jsp:include page="inc/page_header.jsp" />
+			</f:subview>
+		</f:facet>
+
+		<f:facet name="navigation">
+			<f:subview id="menu">
+				<jsp:include page="inc/navigation.jsp" />
+			</f:subview>
+		</f:facet>
+
+		<f:facet name="body">
+			<h:form>
+			<h:panelGroup id="body">
+
+				<h:panelGrid columns="1">
+					<h:commandLink rendered="#{!crossDataTable.editValues}" action="#{crossDataTable.editValues}"
+						immediate="true">
+						<h:outputText value="#{example_messages['country_edit_table']}"
+							styleClass="standard" />
+					</h:commandLink>
+					<h:panelGrid rendered="#{!crossDataTable.editValues}" columns="3">
+						<h:outputLabel for="columnLabel" value="#{example_messages['crosstable_field_column']}"/>
+						<h:inputText id="columnLabel" value="#{crossDataTable.columnLabel}" />
+						<h:commandLink action="#{crossDataTable.addColumn}">
+							<h:outputText value="#{example_messages['crosstable_add_column']}"
+								styleClass="standard" />
+						</h:commandLink>
+					</h:panelGrid>
+					<h:commandLink rendered="#{crossDataTable.editValues}" action="#{crossDataTable.saveValues}">
+						<h:outputText value="#{example_messages['crosstable_save_values']}"
+							styleClass="standard" />
+					</h:commandLink>
+				</h:panelGrid>
+				<f:verbatim>
+					<br>
+				</f:verbatim>
+
+				<x:dataTable id="data" styleClass="standardTable"
+					headerClass="standardTable_Header"
+					footerClass="standardTable_Header"
+					rowClasses="standardTable_Row1,standardTable_Row2"
+					columnClasses="standardTable_Column" var="country"
+					value="#{crossDataTable.countryDataModel}" preserveDataModel="false">
+					<h:column>
+						<f:facet name="header">
+							<h:outputText value="#{example_messages['label_country_name']}" />
+						</f:facet>
+						<h:outputText value="#{country.name}" />
+					</h:column>
+
+					<x:columns value="#{crossDataTable.columnDataModel}" var="column">
+						<f:facet name="header">
+							<h:panelGroup>
+								<h:outputText value="#{column} " />
+								<h:commandLink action="#{crossDataTable.removeColumn}">
+									<h:outputText value="-" title="#{example_messages['crosstable_remove_column']}" />
+								</h:commandLink>
+							</h:panelGroup>
+						</f:facet>
+						<h:outputText rendered="#{!crossDataTable.editValues}"
+							value="#{crossDataTable.columnValue}" />
+						<h:inputText rendered="#{crossDataTable.editValues}"
+							value="#{crossDataTable.columnValue}" />
+					</x:columns>
+
+				</x:dataTable>
+
+				<f:verbatim>
+					<br>
+				</f:verbatim>
+
+			</h:panelGroup>
+			</h:form>
+		</f:facet>
+
+		<%@include file="inc/page_footer.jsp"%>
+
+	</x:panelLayout>
+
+</f:view>
+
+</body>
+
+</html>

Added: myfaces/trunk/webapps/simple/dataTable.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/dataTable.jsp?rev=180085&view=auto
==============================================================================
--- myfaces/trunk/webapps/simple/dataTable.jsp (added)
+++ myfaces/trunk/webapps/simple/dataTable.jsp Sun Jun  5 06:16:28 2005
@@ -0,0 +1,128 @@
+<%@ page session="false" contentType="text/html;charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x"%>
+<html>
+
+<!--
+/*
+ * Copyright 2004 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.
+ */
+//-->
+
+<%@include file="inc/head.inc" %>
+
+<body>
+
+<!--
+managed beans used:
+    countryList
+-->
+
+<f:view>
+
+    <f:loadBundle basename="org.apache.myfaces.examples.resource.example_messages" var="example_messages"/>
+
+    <x:panelLayout id="page" layout="#{globalOptions.pageLayout}"
+            styleClass="pageLayout"
+            headerClass="pageHeader"
+            navigationClass="pageNavigation"
+            bodyClass="pageBody"
+            footerClass="pageFooter" >
+
+        <f:facet name="header">
+            <f:subview id="header">
+                <jsp:include page="inc/page_header.jsp" />
+            </f:subview>
+        </f:facet>
+
+        <f:facet name="navigation">
+            <f:subview id="menu" >
+                <jsp:include page="inc/navigation.jsp" />
+            </f:subview>
+        </f:facet>
+
+        <f:facet name="body">
+            <h:panelGroup id="body">
+
+               <h:panelGrid columns="1">
+                   <h:commandLink action="go_country" immediate="true">
+                        <h:outputText value="#{example_messages['new_country']}" styleClass="standard" />
+                   </h:commandLink>
+                   <h:commandLink action="go_edit_table" immediate="true">
+                        <h:outputText value="#{example_messages['country_edit_table']}" styleClass="standard" />
+                   </h:commandLink>
+               </h:panelGrid>
+               <f:verbatim><br></f:verbatim>
+
+                <x:dataTable id="data"
+                        styleClass="standardTable"
+                        headerClass="standardTable_Header"
+                        footerClass="standardTable_Header"
+                        rowClasses="standardTable_Row1,standardTable_Row2"
+                        columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
+                        var="country"
+                        value="#{countryList.countries}"
+                        preserveDataModel="true" >
+                   <h:column>
+                       <f:facet name="header">
+                          <h:outputText value="#{example_messages['label_country_name']}" />
+                       </f:facet>
+                       <x:commandLink action="go_country" immediate="true" >
+                            <h:outputText value="#{country.name}" />
+                            <!-- for convenience: MyFaces extension. sets id of current row in countryForm -->
+                            <!-- you don't have to implement a custom action! -->
+                            <x:updateActionListener property="#{countryForm.id}" value="#{country.id}" />
+                       </x:commandLink>
+                   </h:column>
+
+                   <h:column>
+                       <f:facet name="header">
+                          <h:outputText value="#{example_messages['label_country_iso']}" />
+                       </f:facet>
+                       <h:outputText value="#{country.isoCode}" />
+                   </h:column>
+
+                   <h:column>
+                       <f:facet name="header">
+                          <h:outputText value="#{example_messages['label_country_cities']}" />
+                       </f:facet>
+                        <x:dataTable id="cities"
+                                styleClass="standardTable_Column"
+                                var="city"
+                                value="#{country.cities}"
+                                preserveDataModel="false">
+                           <h:column>
+                               <h:outputText value="#{city}" style="font-size: 11px" />
+                           </h:column>
+                        </x:dataTable>
+                   </h:column>
+
+                </x:dataTable>
+
+                <f:verbatim><br></f:verbatim>
+
+            </h:panelGroup>
+        </f:facet>
+
+        <%@include file="inc/page_footer.jsp" %>
+
+    </x:panelLayout>
+
+</f:view>
+
+</body>
+
+</html>
\ No newline at end of file

Modified: myfaces/trunk/webapps/simple/displayValueOnly.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/displayValueOnly.jsp?rev=180085&r1=180084&r2=180085&view=diff
==============================================================================
--- myfaces/trunk/webapps/simple/displayValueOnly.jsp (original)
+++ myfaces/trunk/webapps/simple/displayValueOnly.jsp Sun Jun  5 06:16:28 2005
@@ -89,6 +89,9 @@
         <x:panelGrid id="secondGrid" columns="2" displayValueOnly="#{dvoFace.attribute}">
 	        <h:outputLabel id="inputText2L" for="inputText2" value="inputText"/>
 	        <x:inputText id="inputText2" value="#{dvoFace.map['inputText2']}"/>
+	        
+	        <h:outputLabel id="inputSecret2L" for="inputSecret2" value="inputSecret"/>
+	        <x:inputSecret id="inputSecret2" value="secret" />
 
 	        <h:outputLabel id="inputTextArea2L" for="inputTextarea2" value="inputTextarea"/>
 	        <x:inputTextarea id="inputTextarea2" value="#{dvoFace.map['inputTextarea2']}"/>