You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sv...@apache.org on 2005/05/11 21:46:21 UTC

svn commit: r169687 - in /myfaces/trunk: src/components/org/apache/myfaces/component/html/ext/ src/components/org/apache/myfaces/custom/inputHtml/ tlds/ tlds/entities/

Author: svieujot
Date: Wed May 11 12:46:20 2005
New Revision: 169687

URL: http://svn.apache.org/viewcvs?rev=169687&view=rev
Log:
First use of displayValueOnly attribute for inputHtml.

Added:
    myfaces/trunk/tlds/entities/display_value_only_attributes.xml   (with props)
Modified:
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.xml
    myfaces/trunk/src/components/org/apache/myfaces/custom/inputHtml/InputHtmlRenderer.java
    myfaces/trunk/tlds/myfaces_ext.tld

Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java?rev=169687&r1=169686&r2=169687&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java Wed May 11 12:46:20 2005
@@ -15,6 +15,7 @@
  */
 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;
@@ -28,7 +29,7 @@
  */
 public class HtmlInputText
         extends javax.faces.component.html.HtmlInputText
-        implements UserRoleAware
+        implements UserRoleAware, DisplayValueOnlyCapable
 {
 
     public String getClientId(FacesContext context)
@@ -45,9 +46,11 @@
     //------------------ GENERATED CODE BEGIN (do not modify!) --------------------
 
     public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlInputText";
+    private static final boolean DEFAULT_DISPLAYVALUEONLY = false;
 
     private String _enabledOnUserRole = null;
     private String _visibleOnUserRole = null;
+	private Boolean _displayValueOnly = null;
 
     public HtmlInputText()
     {
@@ -78,20 +81,33 @@
         return vb != null ? (String)vb.getValue(getFacesContext()) : null;
     }
 
-
     public boolean isRendered()
     {
         if (!UserRoleUtils.isVisibleOnUserRole(this)) return false;
         return super.isRendered();
     }
+	
+    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 Object saveState(FacesContext context)
     {
-        Object values[] = new Object[3];
+        Object values[] = new Object[4];
         values[0] = super.saveState(context);
         values[1] = _enabledOnUserRole;
         values[2] = _visibleOnUserRole;
-        return ((Object) (values));
+		values[3] = _displayValueOnly;
+        return values;
     }
 
     public void restoreState(FacesContext context, Object state)
@@ -100,6 +116,7 @@
         super.restoreState(context, values[0]);
         _enabledOnUserRole = (String)values[1];
         _visibleOnUserRole = (String)values[2];
+		_displayValueOnly = (Boolean)values[3];
     }
     //------------------ GENERATED CODE END ---------------------------------------
 }

Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.xml?rev=169687&r1=169686&r2=169687&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.xml (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.xml Wed May 11 12:46:20 2005
@@ -14,4 +14,9 @@
         <name>visibleOnUserRole</name>
         <type>java.lang.String</type>
     </field>
+    <field>
+        <name>displayValueOnly</name>
+        <type>boolean</type>
+        <default-value>false</default-value>
+    </field>
 </component>

Modified: myfaces/trunk/src/components/org/apache/myfaces/custom/inputHtml/InputHtmlRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/custom/inputHtml/InputHtmlRenderer.java?rev=169687&r1=169686&r2=169687&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/custom/inputHtml/InputHtmlRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/custom/inputHtml/InputHtmlRenderer.java Wed May 11 12:46:20 2005
@@ -58,11 +58,34 @@
     public void encodeEnd(FacesContext context, UIComponent uiComponent) throws IOException {
         RendererUtils.checkParamValidity(context, uiComponent, InputHtml.class);
 		InputHtml editor = (InputHtml) uiComponent;
-		if( useFallback(editor) )
+		if( editor.isDisplayValueOnly() )
+			encodeDisplayValueOnly(context, editor);
+		else if( useFallback(editor) )
 			encodeEndFallBackMode(context, editor);
 		else
 			encodeEndNormalMode(context, editor);
     }
+
+	private void encodeDisplayValueOnly(FacesContext context, InputHtml editor) throws IOException {
+		String clientId = editor.getClientId(context);
+		// Use only a textarea
+		ResponseWriter writer = context.getResponseWriter();
+        writer.startElement(HTML.SPAN_ELEM, editor);
+
+        writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+        HtmlRendererUtils.writeIdIfNecessary(writer, editor, context);
+
+		// TODO : Change to use displayValueOnlyStyle/StyleClass ?
+		if( editor.getStyle()!=null )
+            writer.writeAttribute(HTML.STYLE_ATTR, editor.getStyle(), null);
+		if( editor.getStyleClass()!=null )
+            writer.writeAttribute(HTML.STYLE_CLASS_ATTR, editor.getStyleClass(), null);
+
+        String text = RendererUtils.getStringValue(context, editor);
+        writer.write( getHtmlBody( text ) );
+
+        writer.endElement(HTML.SPAN_ELEM);
+	}
 
 	private void encodeEndFallBackMode(FacesContext context, InputHtml editor) throws IOException {
 		String clientId = editor.getClientId(context);

Added: myfaces/trunk/tlds/entities/display_value_only_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/tlds/entities/display_value_only_attributes.xml?rev=169687&view=auto
==============================================================================
--- myfaces/trunk/tlds/entities/display_value_only_attributes.xml (added)
+++ myfaces/trunk/tlds/entities/display_value_only_attributes.xml Wed May 11 12:46:20 2005
@@ -0,0 +1,10 @@
+<!-- MyFaces extension: user role attributes -->
+        <attribute>
+            <name>displayValueOnly</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+            <description>
+                If true, renders only the value of the component, but no input widget.
+                Default is false.
+            </description>
+        </attribute>

Propchange: myfaces/trunk/tlds/entities/display_value_only_attributes.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/trunk/tlds/entities/display_value_only_attributes.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: myfaces/trunk/tlds/entities/display_value_only_attributes.xml
------------------------------------------------------------------------------
    svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"

Propchange: myfaces/trunk/tlds/entities/display_value_only_attributes.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: myfaces/trunk/tlds/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/trunk/tlds/myfaces_ext.tld?rev=169687&r1=169686&r2=169687&view=diff
==============================================================================
--- myfaces/trunk/tlds/myfaces_ext.tld (original)
+++ myfaces/trunk/tlds/myfaces_ext.tld Wed May 11 12:46:20 2005
@@ -19,6 +19,7 @@
 <!DOCTYPE taglib
   PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
   "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" [
+<!ENTITY display_value_only_attributes  SYSTEM "entities/display_value_only_attributes.xml">
 <!ENTITY ext_forceId_attribute          SYSTEM "entities/ext_forceId_attribute.xml">
 <!ENTITY html_anchor_attributes         SYSTEM "entities/html_anchor_attributes.xml">
 <!ENTITY html_button_attributes         SYSTEM "entities/html_button_attributes.xml">
@@ -994,6 +995,7 @@
         </attribute>
         &ui_input_attributes;
         &user_role_attributes;
+        &display_value_only_attributes;
         <attribute>
 	        <name>style</name>
             <required>false</required>