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/05/15 12:58:16 UTC
svn commit: r170212 - in /myfaces/trunk:
src/components/org/apache/myfaces/component/html/ext/
src/components/org/apache/myfaces/renderkit/html/ext/
src/components/org/apache/myfaces/taglib/html/ext/ tlds/ webapps/examples/
Author: mmarinschek
Date: Sun May 15 03:58:15 2005
New Revision: 170212
URL: http://svn.apache.org/viewcvs?rev=170212&view=rev
Log: (empty)
Modified:
myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputText.java
myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputTextarea.java
myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectManyCheckbox.java
myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneMenu.java
myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneRadio.java
myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlCheckboxRenderer.java
myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlMenuRenderer.java
myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlRadioRenderer.java
myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextRenderer.java
myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextareaRenderer.java
myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextTag.java
myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextareaTag.java
myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectManyCheckboxTag.java
myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneMenuTag.java
myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneRadioTag.java
myfaces/trunk/tlds/myfaces_ext.tld
myfaces/trunk/webapps/examples/sample2.jsp
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=170212&r1=170211&r2=170212&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 Sun May 15 03:58:15 2005
@@ -50,6 +50,7 @@
private String _enabledOnUserRole = null;
private String _visibleOnUserRole = null;
+
private Boolean _displayValueOnly = null;
private String _displayValueOnlyStyle = null;
private String _displayValueOnlyStyleClass = null;
Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputTextarea.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputTextarea.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputTextarea.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlInputTextarea.java Sun May 15 03:58:15 2005
@@ -17,6 +17,7 @@
import org.apache.myfaces.component.UserRoleAware;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
import org.apache.myfaces.component.html.util.HtmlComponentUtils;
import javax.faces.context.FacesContext;
@@ -28,7 +29,7 @@
*/
public class HtmlInputTextarea
extends javax.faces.component.html.HtmlInputTextarea
- implements UserRoleAware
+ implements UserRoleAware, DisplayValueOnlyCapable
{
public String getClientId(FacesContext context)
@@ -45,9 +46,13 @@
//------------------ GENERATED CODE BEGIN (do not modify!) --------------------
public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlInputTextarea";
+ 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 HtmlInputTextarea()
{
@@ -87,10 +92,13 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[3];
+ 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));
}
@@ -100,6 +108,41 @@
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 ---------------------------------------
+
+ 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 void setDisplayValueOnly(boolean displayValueOnly) {
+ _displayValueOnly = Boolean.valueOf(displayValueOnly);
+ }
+
+ public String getDisplayValueOnlyStyle() {
+ if (_displayValueOnlyStyle != null) return _displayValueOnlyStyle;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyle");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle) {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public String getDisplayValueOnlyStyleClass() {
+ if (_displayValueOnlyStyleClass != null) return _displayValueOnlyStyleClass;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyleClass");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass) {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
+
Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectManyCheckbox.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectManyCheckbox.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectManyCheckbox.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectManyCheckbox.java Sun May 15 03:58:15 2005
@@ -17,6 +17,7 @@
import org.apache.myfaces.component.UserRoleAware;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
import org.apache.myfaces.component.html.util.HtmlComponentUtils;
import javax.faces.context.FacesContext;
@@ -28,7 +29,7 @@
*/
public class HtmlSelectManyCheckbox
extends javax.faces.component.html.HtmlSelectManyCheckbox
- implements UserRoleAware
+ implements UserRoleAware, DisplayValueOnlyCapable
{
public String getClientId(FacesContext context)
{
@@ -44,9 +45,13 @@
//------------------ GENERATED CODE BEGIN (do not modify!) --------------------
public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlSelectManyCheckbox";
+ 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 HtmlSelectManyCheckbox()
{
@@ -86,10 +91,13 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[3];
+ 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));
}
@@ -99,6 +107,40 @@
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 ---------------------------------------
+
+ 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 void setDisplayValueOnly(boolean displayValueOnly) {
+ _displayValueOnly = Boolean.valueOf(displayValueOnly);
+ }
+
+ public String getDisplayValueOnlyStyle() {
+ if (_displayValueOnlyStyle != null) return _displayValueOnlyStyle;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyle");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle) {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public String getDisplayValueOnlyStyleClass() {
+ if (_displayValueOnlyStyleClass != null) return _displayValueOnlyStyleClass;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyleClass");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass) {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneMenu.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneMenu.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneMenu.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneMenu.java Sun May 15 03:58:15 2005
@@ -17,6 +17,7 @@
import org.apache.myfaces.component.UserRoleAware;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
import org.apache.myfaces.component.html.util.HtmlComponentUtils;
import javax.faces.context.FacesContext;
@@ -28,7 +29,7 @@
*/
public class HtmlSelectOneMenu
extends javax.faces.component.html.HtmlSelectOneMenu
- implements UserRoleAware
+ implements UserRoleAware, DisplayValueOnlyCapable
{
public String getClientId(FacesContext context)
{
@@ -44,9 +45,13 @@
//------------------ GENERATED CODE BEGIN (do not modify!) --------------------
public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlSelectOneMenu";
+ 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 HtmlSelectOneMenu()
{
@@ -86,10 +91,13 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[3];
+ 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));
}
@@ -99,6 +107,40 @@
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 ---------------------------------------
+
+ 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 void setDisplayValueOnly(boolean displayValueOnly) {
+ _displayValueOnly = Boolean.valueOf(displayValueOnly);
+ }
+
+ public String getDisplayValueOnlyStyle() {
+ if (_displayValueOnlyStyle != null) return _displayValueOnlyStyle;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyle");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle) {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public String getDisplayValueOnlyStyleClass() {
+ if (_displayValueOnlyStyleClass != null) return _displayValueOnlyStyleClass;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyleClass");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass) {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneRadio.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneRadio.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneRadio.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlSelectOneRadio.java Sun May 15 03:58:15 2005
@@ -17,6 +17,7 @@
import org.apache.myfaces.component.UserRoleAware;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.DisplayValueOnlyCapable;
import org.apache.myfaces.component.html.util.HtmlComponentUtils;
import javax.faces.context.FacesContext;
@@ -28,7 +29,7 @@
*/
public class HtmlSelectOneRadio
extends javax.faces.component.html.HtmlSelectOneRadio
- implements UserRoleAware
+ implements UserRoleAware, DisplayValueOnlyCapable
{
public String getClientId(FacesContext context)
{
@@ -44,9 +45,13 @@
//------------------ GENERATED CODE BEGIN (do not modify!) --------------------
public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlSelectOneRadio";
+ 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 HtmlSelectOneRadio()
{
@@ -86,10 +91,13 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[3];
+ 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));
}
@@ -99,6 +107,40 @@
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 ---------------------------------------
+
+ 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 void setDisplayValueOnly(boolean displayValueOnly) {
+ _displayValueOnly = Boolean.valueOf(displayValueOnly);
+ }
+
+ public String getDisplayValueOnlyStyle() {
+ if (_displayValueOnlyStyle != null) return _displayValueOnlyStyle;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyle");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle) {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public String getDisplayValueOnlyStyleClass() {
+ if (_displayValueOnlyStyleClass != null) return _displayValueOnlyStyleClass;
+ ValueBinding vb = getValueBinding("displayValueOnlyStyleClass");
+ return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass) {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlCheckboxRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlCheckboxRenderer.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlCheckboxRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlCheckboxRenderer.java Sun May 15 03:58:15 2005
@@ -16,19 +16,26 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlSelectManyCheckbox;
import org.apache.myfaces.custom.checkbox.HtmlCheckbox;
import org.apache.myfaces.renderkit.RendererUtils;
+import org.apache.myfaces.renderkit.JSFAttr;
import org.apache.myfaces.renderkit.html.HtmlCheckboxRendererBase;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.component.UISelectMany;
+import javax.faces.component.UISelectBoolean;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
import javax.faces.convert.Converter;
import javax.faces.model.SelectItem;
import java.io.IOException;
import java.util.List;
import java.util.Set;
+import java.util.Iterator;
/**
@@ -40,6 +47,12 @@
{
//private static final Log log = LogFactory.getLog(HtmlRadioRenderer.class);
+ private static final String PAGE_DIRECTION = "pageDirection";
+
+ private static final String LINE_DIRECTION = "lineDirection";
+
+ private static final String EXTERNAL_TRUE_VALUE = "true";
+
private static final String LAYOUT_SPREAD = "spread";
public void encodeEnd(FacesContext context, UIComponent component) throws IOException
@@ -60,7 +73,8 @@
}
else
{
- super.encodeEnd(context, component);
+ //super.encodeEnd(context, component);
+ chooseRenderMode(context, component);
}
}
else
@@ -69,6 +83,135 @@
}
}
+ private void chooseRenderMode(FacesContext facesContext, UIComponent uiComponent)
+ throws IOException
+ {
+ RendererUtils.checkParamValidity(facesContext, uiComponent, null);
+ if (uiComponent instanceof UISelectBoolean)
+ {
+ Boolean value = RendererUtils.getBooleanValue( uiComponent );
+ boolean isChecked = value != null ? value.booleanValue() : false;
+ renderCheckbox(facesContext, uiComponent, EXTERNAL_TRUE_VALUE,
+ null, isChecked, true);
+ }
+ else if (uiComponent instanceof UISelectMany)
+ {
+ renderCheckboxList(facesContext, (UISelectMany) uiComponent);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unsupported component class "
+ + uiComponent.getClass().getName());
+ }
+ }
+
+ public void renderCheckboxList(FacesContext facesContext,
+ UISelectMany selectMany) throws IOException
+ {
+
+ String layout = getLayout(selectMany);
+ boolean pageDirectionLayout = false; //Default to lineDirection
+ if (layout != null)
+ {
+ if (layout.equals(PAGE_DIRECTION))
+ {
+ pageDirectionLayout = true;
+ }
+ else if (layout.equals(LINE_DIRECTION))
+ {
+ pageDirectionLayout = false;
+ }
+ //else
+ //{
+ // log.error("Wrong layout attribute for component "
+ // + selectMany.getClientId(facesContext) + ": " + layout);
+ //}
+ }
+
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.TABLE_ELEM, selectMany);
+ HtmlRendererUtils.renderHTMLAttributes(writer, selectMany,
+ HTML.SELECT_TABLE_PASSTHROUGH_ATTRIBUTES);
+ HtmlRendererUtils.writeIdIfNecessary(writer, selectMany, facesContext);
+
+ if (!pageDirectionLayout)
+ writer.startElement(HTML.TR_ELEM, selectMany);
+
+ Converter converter;
+ try
+ {
+ converter = RendererUtils.findUISelectManyConverter(facesContext,
+ selectMany);
+ }
+ catch (FacesException e)
+ {
+ //log.error("Error finding Converter for component with id "
+ // + selectMany.getClientId(facesContext));
+ converter = null;
+ }
+
+ Set lookupSet = RendererUtils.getSubmittedValuesAsSet(facesContext, selectMany, converter, selectMany);
+ boolean useSubmittedValues = lookupSet != null;
+
+ if (!useSubmittedValues) {
+ lookupSet = RendererUtils.getSelectedValuesAsSet(facesContext, selectMany, converter, selectMany);
+ }
+
+ for (Iterator it = RendererUtils.getSelectItemList(selectMany)
+ .iterator(); it.hasNext();) {
+ SelectItem selectItem = (SelectItem) it.next();
+ Object itemValue = selectItem.getValue(); // TODO : Check here for getSubmittedValue. Look at RendererUtils.getValue
+
+ String itemStrValue;
+ if (converter == null) {
+ itemStrValue = itemValue.toString();
+ } else {
+ itemStrValue = converter.getAsString(facesContext, selectMany,
+ itemValue);
+ }
+
+ writer.write("\t\t");
+ if (pageDirectionLayout)
+ writer.startElement(HTML.TR_ELEM, selectMany);
+ writer.startElement(HTML.TD_ELEM, selectMany);
+ writer.startElement(HTML.LABEL_ELEM, selectMany);
+
+ boolean checked = (useSubmittedValues && lookupSet
+ .contains(itemStrValue))
+ || (!useSubmittedValues && lookupSet.contains(itemValue));
+
+ if(selectMany instanceof HtmlSelectManyCheckbox)
+ {
+ if(((HtmlSelectManyCheckbox)selectMany).isDisplayValueOnly())
+ {
+ renderCheckboxValueOnly(facesContext,
+ (HtmlSelectManyCheckbox)selectMany,
+ itemStrValue,
+ selectItem.getLabel(),
+ lookupSet.contains(itemStrValue),
+ true);
+ }
+ else
+ {
+ renderCheckbox(facesContext,
+ selectMany,
+ itemStrValue,
+ selectItem.getLabel(),
+ checked,
+ false);
+ }
+ }
+ writer.endElement(HTML.LABEL_ELEM);
+ writer.endElement(HTML.TD_ELEM);
+ if (pageDirectionLayout)
+ writer.endElement(HTML.TR_ELEM);
+ }
+
+ if (!pageDirectionLayout)
+ writer.endElement(HTML.TR_ELEM);
+ writer.endElement(HTML.TABLE_ELEM);
+ }
private void renderSingleCheckbox(FacesContext facesContext, HtmlCheckbox checkbox) throws IOException
{
@@ -125,13 +268,124 @@
//TODO: we must cache this Set!
Set lookupSet = RendererUtils.getSelectedValuesAsSet(facesContext, uiComponent, converter, uiSelectMany);
- renderCheckbox(facesContext,
- uiSelectMany,
- itemStrValue,
- selectItem.getLabel(),
- lookupSet.contains(itemStrValue), true);
+ if(uiSelectMany instanceof HtmlSelectManyCheckbox &&
+ ((HtmlSelectManyCheckbox)uiSelectMany).isDisplayValueOnly())
+ {
+ renderCheckboxValueOnly(facesContext,
+ (HtmlSelectManyCheckbox)uiSelectMany,
+ itemStrValue,
+ selectItem.getLabel(),
+ lookupSet.contains(itemStrValue),
+ true);
+ }
+ else
+ {
+ renderCheckbox(facesContext,
+ uiSelectMany,
+ itemStrValue,
+ selectItem.getLabel(),
+ lookupSet.contains(itemStrValue),
+ true);
+ }
}
+ protected void renderCheckboxValueOnly(FacesContext facesContext,
+ HtmlSelectManyCheckbox checkbox,
+ String value,
+ String label,
+ boolean checked,
+ boolean renderId)
+ throws IOException
+ {
+ String clientId = checkbox.getClientId(facesContext);
+
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.SPAN_ELEM, checkbox);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+ if (renderId)
+ {
+ HtmlRendererUtils.writeIdIfNecessary(writer, checkbox, facesContext);
+ }
+
+ if (checked)
+ {
+ writer.writeAttribute(HTML.CHECKED_ATTR, HTML.CHECKED_ATTR, null);
+ }
+
+// if ((value != null) && (value.length() > 0))
+// {
+// writer.writeAttribute(HTML.VALUE_ATTR, value, null);
+// }
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, checkbox,
+ HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(checkbox.getDisplayValueOnlyStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, checkbox.getDisplayValueOnlyStyle(), null);
+ if(checkbox.getDisplayValueOnlyStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, checkbox.getDisplayValueOnlyStyleClass(), null);
+
+ String strValue = RendererUtils.getStringValue(facesContext, checkbox);
+ writer.writeText(strValue, JSFAttr.VALUE_ATTR);
+ //writer.writeText("", null); // close input
+ if ((label != null) && (label.length() > 0))
+ {
+ writer.write(HTML.NBSP_ENTITY);
+ writer.writeText(label, null);
+ }
+ //writer.endElement(HTML.SPAN_ELEM);
+ }
+
+ protected void renderCheckbox(FacesContext facesContext,
+ HtmlSelectManyCheckbox checkbox,
+ String value,
+ String label,
+ boolean checked,
+ boolean renderId)
+ throws IOException
+ {
+ String clientId = checkbox.getClientId(facesContext);
+
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.INPUT_ELEM, checkbox);
+ writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_CHECKBOX, null);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+ if (renderId)
+ {
+ HtmlRendererUtils.writeIdIfNecessary(writer, checkbox, facesContext);
+ }
+
+ if (checked)
+ {
+ writer.writeAttribute(HTML.CHECKED_ATTR, HTML.CHECKED_ATTR, null);
+ }
+
+ if ((value != null) && (value.length() > 0))
+ {
+ writer.writeAttribute(HTML.VALUE_ATTR, value, null);
+ }
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, checkbox,
+ HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(checkbox.getStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, checkbox.getStyle(), null);
+ if(checkbox.getStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, checkbox.getStyleClass(), null);
+
+ if (isDisabled(facesContext, checkbox))
+ {
+ writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
+ }
+ writer.writeText("", null); // close input
+ if ((label != null) && (label.length() > 0))
+ {
+ writer.write(HTML.NBSP_ENTITY);
+ writer.writeText(label, null);
+ }
+ }
protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent)
{
Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlMenuRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlMenuRenderer.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlMenuRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlMenuRenderer.java Sun May 15 03:58:15 2005
@@ -16,10 +16,23 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlSelectOneMenu;
import org.apache.myfaces.renderkit.html.HtmlMenuRendererBase;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.RendererUtils;
import javax.faces.component.UIComponent;
+import javax.faces.component.UISelectMany;
+import javax.faces.component.UISelectOne;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.convert.Converter;
+import javax.faces.FacesException;
+import javax.faces.model.SelectItem;
+import javax.faces.model.SelectItemGroup;
+import java.io.IOException;
+import java.util.*;
/**
@@ -39,6 +52,220 @@
else
{
return super.isDisabled(facesContext, uiComponent);
+ }
+ }
+
+ public void encodeEnd(FacesContext facesContext, UIComponent component)
+ throws IOException
+ {
+ if(component instanceof HtmlSelectOneMenu)
+ {
+ internalRenderSelect(facesContext, component, isDisabled(facesContext, component), 1, false);
+ }
+ else
+ {
+ super.encodeEnd(facesContext, component);
+ }
+ }
+
+ private static void internalRenderSelect(FacesContext facesContext,
+ UIComponent uiComponent, boolean disabled, int size,
+ boolean selectMany) throws IOException {
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.SELECT_ELEM, uiComponent);
+ HtmlRendererUtils.writeIdIfNecessary(writer, uiComponent, facesContext);
+ writer.writeAttribute(HTML.NAME_ATTR, uiComponent.getClientId(facesContext), null);
+
+ List selectItemList;
+ Converter converter;
+ if (selectMany) {
+ writer.writeAttribute(HTML.MULTIPLE_ATTR, "true", null);
+ selectItemList = RendererUtils.getSelectItemList((UISelectMany) uiComponent);
+ try {
+ converter = RendererUtils.findUISelectManyConverter(
+ facesContext, (UISelectMany) uiComponent);
+ } catch (FacesException e) {
+// log.error("Error finding Converter for component with id "
+// + uiComponent.getClientId(facesContext));
+ converter = null;
+ }
+ } else {
+ selectItemList = RendererUtils
+ .getSelectItemList((UISelectOne) uiComponent);
+ try {
+ converter = RendererUtils.findUIOutputConverter(facesContext,
+ (UISelectOne) uiComponent);
+ } catch (FacesException e) {
+// log.error("Error finding Converter for component with id "
+// + uiComponent.getClientId(facesContext));
+ converter = null;
+ }
+ }
+
+ if (size == 0) {
+ //No size given (Listbox) --> size is number of select items
+ writer.writeAttribute(HTML.SIZE_ATTR, Integer
+ .toString(selectItemList.size()), null);
+ } else {
+ writer.writeAttribute(HTML.SIZE_ATTR, Integer.toString(size), null);
+ }
+ HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
+ HTML.SELECT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+ if (disabled) {
+ writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
+ }
+
+ Set lookupSet;
+ boolean useSubmittedValue;
+ if (selectMany) {
+ UISelectMany uiSelectMany = (UISelectMany) uiComponent;
+ lookupSet = RendererUtils.getSubmittedValuesAsSet(facesContext, uiComponent, converter, uiSelectMany);
+ if (lookupSet == null)
+ {
+ useSubmittedValue = false;
+ lookupSet = RendererUtils.getSelectedValuesAsSet(facesContext, uiComponent, converter, uiSelectMany);
+ }
+ else
+ {
+ useSubmittedValue = true;
+ }
+ } else {
+ UISelectOne uiSelectOne = (UISelectOne) uiComponent;
+ Object lookup = uiSelectOne.getSubmittedValue();
+ if (lookup == null)
+ {
+ useSubmittedValue = false;
+ lookup = uiSelectOne.getValue();
+ }
+ else
+ {
+ useSubmittedValue = true;
+ }
+ String lookupString = RendererUtils.getConvertedStringValue(facesContext, uiComponent, converter, lookup);
+ lookupSet = Collections.singleton(lookupString);
+ }
+
+ if(uiComponent instanceof HtmlSelectOneMenu)
+ {
+ if(((HtmlSelectOneMenu)uiComponent).isDisplayValueOnly())
+ renderSelectOptions(facesContext, (HtmlSelectOneMenu)uiComponent, converter, lookupSet,
+ useSubmittedValue, selectItemList);
+ else
+ renderSelectOptionsValueOnly(facesContext, (HtmlSelectOneMenu)uiComponent,
+ converter, lookupSet,
+ useSubmittedValue, selectItemList);
+ }
+ // bug #970747: force separate end tag
+ writer.writeText("", null);
+ writer.endElement(HTML.SELECT_ELEM);
+ }
+
+ /**
+ * Renders the select options for a <code>UIComponent</code> that is
+ * rendered as an HTML select element.
+ *
+ * @param context
+ * the current <code>FacesContext</code>.
+ * @param menu
+ * the <code>menu</code> whose options need to be
+ * rendered.
+ * @param converter
+ * <code>component</code>'s converter
+ * @param lookupSet
+ * the <code>Set</code> to use to look up selected options
+ * @param useSubmittedValue
+ * whether we are using the submittedValue
+ * @param selectItemList
+ * the <code>List</code> of <code>SelectItem</code> s to be
+ * rendered as HTML option elements.
+ * @throws IOException
+ */
+ private static void renderSelectOptions(FacesContext context,
+ HtmlSelectOneMenu menu, Converter converter, Set lookupSet,
+ boolean useSubmittedValue, List selectItemList) throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+
+ for (Iterator it = selectItemList.iterator(); it.hasNext();) {
+ SelectItem selectItem = (SelectItem) it.next();
+
+ if (selectItem instanceof SelectItemGroup) {
+ writer.startElement(HTML.OPTGROUP_ELEM, null);
+ writer.writeAttribute(HTML.LABEL_ATTR, selectItem.getLabel(),
+ null);
+ SelectItem[] selectItems = ((SelectItemGroup) selectItem)
+ .getSelectItems();
+ renderSelectOptions(context, menu, converter, lookupSet,
+ useSubmittedValue, Arrays.asList(selectItems));
+ writer.endElement(HTML.OPTGROUP_ELEM);
+ } else {
+ String itemStrValue = RendererUtils.getConvertedStringValue(context, menu,
+ converter, selectItem);
+
+ writer.write("\t\t");
+ writer.startElement(HTML.OPTION_ELEM, null);
+ if (itemStrValue != null) {
+ writer.writeAttribute(HTML.VALUE_ATTR, itemStrValue, null);
+ }
+
+ if (lookupSet.contains(itemStrValue)) { //TODO/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects
+ writer.writeAttribute(HTML.SELECTED_ATTR,
+ HTML.SELECTED_ATTR, null);
+ }
+
+ if (selectItem.isDisabled()) {
+ writer.writeAttribute(HTML.DISABLED_ATTR,
+ HTML.DISABLED_ATTR, null);
+ }
+
+ writer.writeText(selectItem.getLabel(), null);
+
+ writer.endElement(HTML.OPTION_ELEM);
+ }
+ }
+ }
+
+ private static void renderSelectOptionsValueOnly(FacesContext context,
+ HtmlSelectOneMenu menu, Converter converter, Set lookupSet,
+ boolean useSubmittedValue, List selectItemList) throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+
+ for (Iterator it = selectItemList.iterator(); it.hasNext();) {
+ SelectItem selectItem = (SelectItem) it.next();
+
+ if (selectItem instanceof SelectItemGroup) {
+ writer.startElement(HTML.OPTGROUP_ELEM, null);
+ writer.writeAttribute(HTML.LABEL_ATTR, selectItem.getLabel(),
+ null);
+ SelectItem[] selectItems = ((SelectItemGroup) selectItem)
+ .getSelectItems();
+ renderSelectOptions(context, menu, converter, lookupSet,
+ useSubmittedValue, Arrays.asList(selectItems));
+ writer.endElement(HTML.OPTGROUP_ELEM);
+ } else {
+ String itemStrValue = RendererUtils.getConvertedStringValue(context, menu,
+ converter, selectItem);
+
+ writer.write("\t\t");
+ writer.startElement(HTML.SPAN_ELEM, null);
+ if (itemStrValue != null) {
+ writer.writeAttribute(HTML.VALUE_ATTR, itemStrValue, null);
+ }
+
+ if (lookupSet.contains(itemStrValue)) { //TODO/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects
+ writer.writeAttribute(HTML.SELECTED_ATTR,
+ HTML.SELECTED_ATTR, null);
+ }
+
+ if (selectItem.isDisabled()) {
+ writer.writeAttribute(HTML.DISABLED_ATTR,
+ HTML.DISABLED_ATTR, null);
+ }
+
+ writer.writeText(selectItem.getLabel(), null);
+
+ writer.endElement(HTML.SPAN_ELEM);
+ }
}
}
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlRadioRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlRadioRenderer.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlRadioRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlRadioRenderer.java Sun May 15 03:58:15 2005
@@ -16,20 +16,25 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlSelectOneRadio;
import org.apache.myfaces.custom.radio.HtmlRadio;
import org.apache.myfaces.renderkit.RendererUtils;
+import org.apache.myfaces.renderkit.JSFAttr;
import org.apache.myfaces.renderkit.html.HTML;
import org.apache.myfaces.renderkit.html.HtmlRadioRendererBase;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.component.UISelectOne;
+import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.convert.Converter;
import javax.faces.model.SelectItem;
import java.io.IOException;
import java.util.List;
+import java.util.Iterator;
/**
@@ -44,6 +49,9 @@
private static final String LAYOUT_SPREAD = "spread";
+ private static final String PAGE_DIRECTION = "pageDirection";
+ private static final String LINE_DIRECTION = "lineDirection";
+
public void encodeEnd(FacesContext context, UIComponent component) throws IOException
{
if (context == null) throw new NullPointerException("context");
@@ -62,7 +70,8 @@
}
else
{
- super.encodeEnd(context, component);
+ //super.encodeEnd(context, component);
+ renderRadio(context, (UISelectOne)component);
}
}
else
@@ -71,6 +80,90 @@
}
}
+ private void renderRadio(FacesContext facesContext, UISelectOne selectOne) throws IOException
+ {
+// RendererUtils.checkParamValidity(facesContext, uiComponent, UISelectOne.class);
+ String layout = getLayout(selectOne);
+
+ boolean pageDirectionLayout = false; // Defaults to LINE_DIRECTION
+ if (layout != null)
+ {
+ if (layout.equals(PAGE_DIRECTION))
+ {
+ pageDirectionLayout = true;
+ }
+ else if (layout.equals(LINE_DIRECTION))
+ {
+ pageDirectionLayout = false;
+ }
+ else
+ {
+ //log.error("Wrong layout attribute for component " + selectOne.getClientId(facesContext) + ": " + layout);
+ }
+ }
+
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.TABLE_ELEM, selectOne);
+ HtmlRendererUtils.renderHTMLAttributes(writer, selectOne,
+ HTML.SELECT_TABLE_PASSTHROUGH_ATTRIBUTES);
+ HtmlRendererUtils.writeIdIfNecessary(writer, selectOne, facesContext);
+
+ if (!pageDirectionLayout) writer.startElement(HTML.TR_ELEM, selectOne);
+
+ Converter converter;
+ List selectItemList = RendererUtils.getSelectItemList(selectOne);
+ try
+ {
+ converter = RendererUtils.findUIOutputConverter(facesContext, selectOne);
+ }
+ catch (FacesException e)
+ {
+ //log.error("Error finding Converter for component with id " + uiComponent.getClientId(facesContext));
+ converter = null;
+ }
+
+ String currentValueStr = RendererUtils.getStringValue(facesContext, selectOne);
+
+ for (Iterator it = selectItemList.iterator(); it.hasNext(); )
+ {
+ SelectItem selectItem = (SelectItem)it.next();
+ String itemStrValue = RendererUtils.getConvertedStringValue(facesContext, selectOne, converter, selectItem.getValue());
+
+ writer.write("\t\t");
+ if (pageDirectionLayout) writer.startElement(HTML.TR_ELEM, selectOne);
+ writer.startElement(HTML.TD_ELEM, selectOne);
+ writer.startElement(HTML.LABEL_ELEM, selectOne);
+ if(selectOne instanceof HtmlSelectOneRadio)
+ {
+ if(((HtmlSelectOneRadio)selectOne).isDisplayValueOnly())
+ renderRadioValueOnly(facesContext,
+ (HtmlSelectOneRadio)selectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValueStr.equals(itemStrValue), false);
+ else
+ renderRadio(facesContext,
+ selectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValueStr.equals(itemStrValue), false);
+ }
+ else
+ {
+ renderRadio(facesContext,
+ selectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValueStr.equals(itemStrValue), false);
+ }
+ writer.endElement(HTML.LABEL_ELEM);
+ writer.endElement(HTML.TD_ELEM);
+ if (pageDirectionLayout) writer.endElement(HTML.TR_ELEM);
+ }
+ if (!pageDirectionLayout) writer.endElement(HTML.TR_ELEM);
+ writer.endElement(HTML.TABLE_ELEM);
+ }
private void renderRadio(FacesContext facesContext, HtmlRadio radio) throws IOException
{
@@ -127,17 +220,75 @@
ResponseWriter writer = facesContext.getResponseWriter();
writer.startElement(HTML.LABEL_ELEM, uiSelectOne);
-
- renderRadio(facesContext,
- uiSelectOne,
- itemStrValue,
- selectItem.getLabel(),
- currentValue == null && itemValue == null ||
- currentValue != null && currentValue.equals(itemValue), false);
+ if(uiSelectOne instanceof HtmlSelectOneRadio)
+ {
+ if(((HtmlSelectOneRadio)uiSelectOne).isDisplayValueOnly())
+ renderRadioValueOnly(facesContext,
+ (HtmlSelectOneRadio)uiSelectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValue == null && itemValue == null ||
+ currentValue != null && currentValue.equals(itemValue), false);
+ else
+ renderRadio(facesContext,
+ uiSelectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValue == null && itemValue == null ||
+ currentValue != null && currentValue.equals(itemValue), false);
+ }
+ else
+ {
+ renderRadio(facesContext,
+ uiSelectOne,
+ itemStrValue,
+ selectItem.getLabel(),
+ currentValue == null && itemValue == null ||
+ currentValue != null && currentValue.equals(itemValue), false);
+ }
writer.endElement(HTML.LABEL_ELEM);
}
+
+ protected void renderRadioValueOnly(FacesContext facesContext,
+ HtmlSelectOneRadio radio,
+ String value,
+ String label,
+ boolean checked,
+ boolean renderId)
+ throws IOException
+ {
+ String clientId = radio.getClientId(facesContext);
+
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ writer.startElement(HTML.SPAN_ELEM, radio);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+
+ if (renderId)
+ {
+ writer.writeAttribute(HTML.ID_ATTR, clientId, null);
+ }
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, radio, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ String strValue = RendererUtils.getStringValue(facesContext, radio);
+ writer.writeText(strValue, JSFAttr.VALUE_ATTR);
+// if ((value != null) && (value.length() > 0))
+// {
+// writer.writeAttribute(HTML.VALUE_ATTR, value, null);
+// }
+
+ writer.endElement(HTML.SPAN_ELEM);
+
+ if ((label != null) && (label.length() > 0))
+ {
+ writer.write(HTML.NBSP_ENTITY);
+ writer.writeText(label, null);
+ }
+ }
+
protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent)
{
if (!UserRoleUtils.isEnabledOnUserRole(uiComponent))
@@ -149,7 +300,6 @@
return super.isDisabled(facesContext, uiComponent);
}
}
-
public void decode(FacesContext facesContext, UIComponent uiComponent)
{
Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextRenderer.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextRenderer.java Sun May 15 03:58:15 2005
@@ -16,10 +16,17 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlInputText;
import org.apache.myfaces.renderkit.html.HtmlTextRendererBase;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.renderkit.RendererUtils;
+import org.apache.myfaces.renderkit.JSFAttr;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import java.io.IOException;
/**
@@ -40,5 +47,73 @@
{
return super.isDisabled(facesContext, uiComponent);
}
+ }
+
+ public void encodeEnd(FacesContext facesContext, UIComponent component)
+ throws IOException
+ {
+ if(component instanceof HtmlInputText)
+ {
+ if(((HtmlInputText)component).isDisplayValueOnly())
+ renderInputValueOnly(facesContext, (HtmlInputText)component);
+ else
+ renderInput(facesContext, (HtmlInputText)component);
+ }
+ else
+ {
+ super.encodeEnd(facesContext, component);
+ }
+ }
+
+ protected void renderInput(FacesContext facesContext, HtmlInputText inputText)
+ throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ String clientId = inputText.getClientId(facesContext);
+ String value = RendererUtils.getStringValue(facesContext, inputText);
+
+ writer.startElement(HTML.INPUT_ELEM, inputText);
+ writer.writeAttribute(HTML.ID_ATTR, clientId, null);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+ writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_TEXT, null);
+ if (value != null)
+ writer.writeAttribute(HTML.VALUE_ATTR, value, JSFAttr.VALUE_ATTR);
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, inputText, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(inputText.getStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, inputText.getStyle(), null);
+ if(inputText.getStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, inputText.getStyleClass(), null);
+
+ if (isDisabled(facesContext, inputText))
+ writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
+
+ writer.endElement(HTML.INPUT_ELEM);
+ }
+
+ protected void renderInputValueOnly(FacesContext facesContext, HtmlInputText inputText)
+ throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ String clientId = inputText.getClientId(facesContext);
+
+ writer.startElement(HTML.SPAN_ELEM, inputText);
+
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, inputText, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(inputText.getDisplayValueOnlyStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, inputText.getDisplayValueOnlyStyle(), null);
+ if(inputText.getDisplayValueOnlyStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, inputText.getDisplayValueOnlyStyleClass(), null);
+
+ String strValue = RendererUtils.getStringValue(facesContext, inputText);
+ writer.writeText(strValue, JSFAttr.VALUE_ATTR);
+
+ writer.endElement(HTML.SPAN_ELEM);
}
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextareaRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextareaRenderer.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextareaRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTextareaRenderer.java Sun May 15 03:58:15 2005
@@ -16,10 +16,18 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlInputTextarea;
import org.apache.myfaces.renderkit.html.HtmlTextareaRendererBase;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.renderkit.RendererUtils;
+import org.apache.myfaces.renderkit.JSFAttr;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import java.io.IOException;
/**
@@ -39,5 +47,67 @@
{
return super.isDisabled(facesContext, uiComponent);
}
+ }
+
+ public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
+ throws IOException
+ {
+ RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class);
+
+ if(uiComponent instanceof HtmlInputTextarea)
+ {
+ HtmlInputTextarea textarea = (HtmlInputTextarea) uiComponent;
+ if(textarea.isDisplayValueOnly())
+ encodeDisplayValueOnly(facesContext, textarea);
+ else
+ encodeNormal(facesContext, textarea);
+ }
+ }
+
+ private void encodeNormal(FacesContext facesContext, HtmlInputTextarea textarea) throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+ writer.startElement(HTML.TEXTAREA_ELEM, textarea);
+
+ String clientId = textarea.getClientId(facesContext);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+ HtmlRendererUtils.writeIdIfNecessary(writer, textarea, facesContext);
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, textarea, HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(textarea.getStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, textarea.getStyle(), null);
+ if(textarea.getStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, textarea.getStyleClass(), null);
+
+ if (isDisabled(facesContext, textarea))
+ writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
+
+ String strValue = RendererUtils.getStringValue(facesContext, textarea);
+ writer.writeText(strValue, JSFAttr.VALUE_ATTR);
+
+ writer.endElement(HTML.TEXTAREA_ELEM);
+ }
+
+ private void encodeDisplayValueOnly(FacesContext facesContext, HtmlInputTextarea textarea) throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+ writer.startElement(HTML.SPAN_ELEM, textarea);
+
+ String clientId = textarea.getClientId(facesContext);
+ writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
+ HtmlRendererUtils.writeIdIfNecessary(writer, textarea, facesContext);
+
+ HtmlRendererUtils.renderHTMLAttributes(writer, textarea, HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+
+ if(textarea.getDisplayValueOnlyStyle() != null)
+ writer.writeAttribute(HTML.STYLE_ATTR, textarea.getDisplayValueOnlyStyle(), null);
+ if(textarea.getDisplayValueOnlyStyleClass() != null)
+ writer.writeAttribute(HTML.STYLE_CLASS_ATTR, textarea.getDisplayValueOnlyStyleClass(), null);
+
+ String strValue = RendererUtils.getStringValue(facesContext, textarea);
+ writer.writeText(strValue, JSFAttr.VALUE_ATTR);
+
+ writer.endElement(HTML.SPAN_ELEM);
}
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextTag.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextTag.java Sun May 15 03:58:15 2005
@@ -41,11 +41,19 @@
private String _enabledOnUserRole;
private String _visibleOnUserRole;
+ private String _displayValueOnly;
+ private String _displayValueOnlyStyle;
+ private String _displayValueOnlyStyleClass;
+
public void release() {
super.release();
_enabledOnUserRole=null;
_visibleOnUserRole=null;
+
+ _displayValueOnly=null;
+ _displayValueOnlyStyle=null;
+ _displayValueOnlyStyleClass=null;
}
protected void setProperties(UIComponent component)
@@ -53,6 +61,10 @@
super.setProperties(component);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+
+ setBooleanProperty(component, "displayValueOnly", _displayValueOnly);
+ setStringProperty(component, "displayValueOnlyStyle", _displayValueOnlyStyle);
+ setStringProperty(component, "displayValueOnlyStyleClass", _displayValueOnlyStyleClass);
}
public void setEnabledOnUserRole(String enabledOnUserRole)
@@ -65,4 +77,18 @@
_visibleOnUserRole = visibleOnUserRole;
}
+ public void setDisplayValueOnly(String displayValueOnly)
+ {
+ _displayValueOnly = displayValueOnly;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+ {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+ {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextareaTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextareaTag.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextareaTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlInputTextareaTag.java Sun May 15 03:58:15 2005
@@ -41,11 +41,19 @@
private String _enabledOnUserRole;
private String _visibleOnUserRole;
+ private String _displayValueOnly;
+ private String _displayValueOnlyStyle;
+ private String _displayValueOnlyStyleClass;
+
public void release() {
super.release();
_enabledOnUserRole=null;
_visibleOnUserRole=null;
+
+ _displayValueOnly=null;
+ _displayValueOnlyStyle=null;
+ _displayValueOnlyStyleClass=null;
}
protected void setProperties(UIComponent component)
@@ -53,6 +61,10 @@
super.setProperties(component);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+
+ setBooleanProperty(component, "displayValueOnly", _displayValueOnly);
+ setStringProperty(component, "displayValueOnlyStyle", _displayValueOnlyStyle);
+ setStringProperty(component, "displayValueOnlyStyleClass", _displayValueOnlyStyleClass);
}
public void setEnabledOnUserRole(String enabledOnUserRole)
@@ -65,4 +77,18 @@
_visibleOnUserRole = visibleOnUserRole;
}
+ public void setDisplayValueOnly(String displayValueOnly)
+ {
+ _displayValueOnly = displayValueOnly;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+ {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+ {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectManyCheckboxTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectManyCheckboxTag.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectManyCheckboxTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectManyCheckboxTag.java Sun May 15 03:58:15 2005
@@ -42,10 +42,18 @@
private String _enabledOnUserRole;
private String _visibleOnUserRole;
+ private String _displayValueOnly;
+ private String _displayValueOnlyStyle;
+ private String _displayValueOnlyStyleClass;
+
public void release() {
super.release();
_enabledOnUserRole=null;
_visibleOnUserRole=null;
+
+ _displayValueOnly=null;
+ _displayValueOnlyStyle=null;
+ _displayValueOnlyStyleClass=null;
}
protected void setProperties(UIComponent component)
@@ -53,6 +61,10 @@
super.setProperties(component);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+
+ setBooleanProperty(component, "displayValueOnly", _displayValueOnly);
+ setStringProperty(component, "displayValueOnlyStyle", _displayValueOnlyStyle);
+ setStringProperty(component, "displayValueOnlyStyleClass", _displayValueOnlyStyleClass);
}
public void setEnabledOnUserRole(String enabledOnUserRole)
@@ -65,4 +77,18 @@
_visibleOnUserRole = visibleOnUserRole;
}
+ public void setDisplayValueOnly(String displayValueOnly)
+ {
+ _displayValueOnly = displayValueOnly;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+ {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+ {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneMenuTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneMenuTag.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneMenuTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneMenuTag.java Sun May 15 03:58:15 2005
@@ -41,10 +41,18 @@
private String _enabledOnUserRole;
private String _visibleOnUserRole;
+ private String _displayValueOnly;
+ private String _displayValueOnlyStyle;
+ private String _displayValueOnlyStyleClass;
+
public void release() {
super.release();
_enabledOnUserRole=null;
_visibleOnUserRole=null;
+
+ _displayValueOnly=null;
+ _displayValueOnlyStyle=null;
+ _displayValueOnlyStyleClass=null;
}
protected void setProperties(UIComponent component)
@@ -52,6 +60,10 @@
super.setProperties(component);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+
+ setBooleanProperty(component, "displayValueOnly", _displayValueOnly);
+ setStringProperty(component, "displayValueOnlyStyle", _displayValueOnlyStyle);
+ setStringProperty(component, "displayValueOnlyStyleClass", _displayValueOnlyStyleClass);
}
public void setEnabledOnUserRole(String enabledOnUserRole)
@@ -64,4 +76,18 @@
_visibleOnUserRole = visibleOnUserRole;
}
+ public void setDisplayValueOnly(String displayValueOnly)
+ {
+ _displayValueOnly = displayValueOnly;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+ {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+ {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneRadioTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneRadioTag.java?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneRadioTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlSelectOneRadioTag.java Sun May 15 03:58:15 2005
@@ -42,10 +42,18 @@
private String _enabledOnUserRole;
private String _visibleOnUserRole;
+ private String _displayValueOnly;
+ private String _displayValueOnlyStyle;
+ private String _displayValueOnlyStyleClass;
+
public void release() {
super.release();
_enabledOnUserRole=null;
_visibleOnUserRole=null;
+
+ _displayValueOnly=null;
+ _displayValueOnlyStyle=null;
+ _displayValueOnlyStyleClass=null;
}
protected void setProperties(UIComponent component)
@@ -53,6 +61,10 @@
super.setProperties(component);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
+
+ setBooleanProperty(component, "displayValueOnly", _displayValueOnly);
+ setStringProperty(component, "displayValueOnlyStyle", _displayValueOnlyStyle);
+ setStringProperty(component, "displayValueOnlyStyleClass", _displayValueOnlyStyleClass);
}
public void setEnabledOnUserRole(String enabledOnUserRole)
@@ -65,4 +77,18 @@
_visibleOnUserRole = visibleOnUserRole;
}
+ public void setDisplayValueOnly(String displayValueOnly)
+ {
+ _displayValueOnly = displayValueOnly;
+ }
+
+ public void setDisplayValueOnlyStyle(String displayValueOnlyStyle)
+ {
+ _displayValueOnlyStyle = displayValueOnlyStyle;
+ }
+
+ public void setDisplayValueOnlyStyleClass(String displayValueOnlyStyleClass)
+ {
+ _displayValueOnlyStyleClass = displayValueOnlyStyleClass;
+ }
}
Modified: myfaces/trunk/tlds/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/trunk/tlds/myfaces_ext.tld?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
--- myfaces/trunk/tlds/myfaces_ext.tld (original)
+++ myfaces/trunk/tlds/myfaces_ext.tld Sun May 15 03:58:15 2005
@@ -226,6 +226,7 @@
&standard_input_text_attributes;
&user_role_attributes;
&ext_forceId_attribute;
+ &display_value_only_attributes;
</tag>
<!-- inputTextarea -->
@@ -239,6 +240,7 @@
&standard_input_textarea_attributes;
&user_role_attributes;
&ext_forceId_attribute;
+ &display_value_only_attributes;
</tag>
<!-- message -->
@@ -397,6 +399,7 @@
&standard_select_one_menu_attributes;
&user_role_attributes;
&ext_forceId_attribute;
+ &display_value_only_attributes;
</tag>
<!-- selectOneRadio -->
@@ -412,6 +415,7 @@
&standard_select_one_radio_attributes;
&user_role_attributes;
&ext_forceId_attribute;
+ &display_value_only_attributes;
</tag>
<!-- selectManyCheckbox -->
@@ -427,6 +431,7 @@
&standard_select_many_checkbox_attributes;
&user_role_attributes;
&ext_forceId_attribute;
+ &display_value_only_attributes;
</tag>
Modified: myfaces/trunk/webapps/examples/sample2.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/examples/sample2.jsp?rev=170212&r1=170211&r2=170212&view=diff
==============================================================================
Binary files - no diff available.