You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/09/02 12:31:53 UTC
svn commit: r267179 - in
/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit:
RendererUtils.java html/HtmlRadioRendererBase.java
html/HtmlRendererUtils.java
Author: mbr
Date: Fri Sep 2 03:31:45 2005
New Revision: 267179
URL: http://svn.apache.org/viewcvs?rev=267179&view=rev
Log:
fix for MYFACES-72,
required flag was not working for selectOneRadio.
Initialy it was only a problem with HtmlRadioRendererBase.decode()
called HtmlRendererUtils.decodeUIInput instead of
HtmlRendererUtils.decodeUISelectOne.
But to make MYFACES-465 work an empty string couldnĀ“t be used.
It is be possible that an identifier of a select item is equal
to an empty string. A special constant (RendererUtils.NOTHING)
is used instead.
Modified:
myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/RendererUtils.java
myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRadioRendererBase.java
myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRendererUtils.java
Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/RendererUtils.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/RendererUtils.java?rev=267179&r1=267178&r2=267179&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/RendererUtils.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/RendererUtils.java Fri Sep 2 03:31:45 2005
@@ -16,6 +16,7 @@
package org.apache.myfaces.renderkit;
import java.io.IOException;
+import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
@@ -62,6 +63,7 @@
public static final String SELECT_ITEM_LIST_ATTR = RendererUtils.class.getName() + ".LIST";
public static final String EMPTY_STRING = new String();
+ public static final Object NOTHING = new Serializable() {};
public static String getPathToComponent(UIComponent component)
{
@@ -708,6 +710,10 @@
{
if (submittedValue!=null && !(submittedValue instanceof String))
{
+ if(RendererUtils.NOTHING.equals(submittedValue))
+ {
+ return null;
+ }
throw new IllegalArgumentException("Submitted value of type String for component : "+
getPathToComponent(output)+"expected");
}
Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRadioRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRadioRendererBase.java?rev=267179&r1=267178&r2=267179&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRadioRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRadioRendererBase.java Fri Sep 2 03:31:45 2005
@@ -87,14 +87,14 @@
List selectItemList = RendererUtils.getSelectItemList(selectOne);
converter = HtmlRendererUtils.findUIOutputConverterFailSafe(facesContext, selectOne);
- String currentValueStr = RendererUtils.getStringValue(facesContext, selectOne);
+ Object currentValue = RendererUtils.getObjectValue(selectOne);
for (Iterator it = selectItemList.iterator(); it.hasNext(); )
{
SelectItem selectItem = (SelectItem)it.next();
renderGroupOrItemRadio(facesContext, selectOne,
- selectItem, currentValueStr,
+ selectItem, currentValue,
converter, pageDirectionLayout);
if (pageDirectionLayout) writer.endElement(HTML.TR_ELEM);
@@ -129,7 +129,7 @@
protected void renderGroupOrItemRadio(FacesContext facesContext,
UIComponent uiComponent, SelectItem selectItem,
- String currentValueStr,
+ Object currentValue,
Converter converter, boolean pageDirectionLayout) throws IOException{
ResponseWriter writer = facesContext.getResponseWriter();
@@ -163,7 +163,7 @@
SelectItem[] selectItems = group.getSelectItems();
for (int i=0; i<selectItems.length; i++) {
- renderGroupOrItemRadio(facesContext, selectOne, selectItems[i], currentValueStr, converter, pageDirectionLayout);
+ renderGroupOrItemRadio(facesContext, selectOne, selectItems[i], currentValue, converter, pageDirectionLayout);
}
writer.endElement(HTML.TD_ELEM);
@@ -185,7 +185,7 @@
String itemStrValue = RendererUtils.getConvertedStringValue(facesContext, selectOne, converter, selectItem.getValue());
boolean itemDisabled = selectItem.isDisabled();
- boolean itemChecked = currentValueStr.equals(itemStrValue);
+ boolean itemChecked = itemStrValue.equals(currentValue);
renderRadio(facesContext, selectOne, itemStrValue, selectItem
.getLabel(), itemDisabled, itemChecked, false);
@@ -263,7 +263,7 @@
RendererUtils.checkParamValidity(facesContext, uiComponent, null);
if (uiComponent instanceof UIInput)
{
- HtmlRendererUtils.decodeUIInput(facesContext, uiComponent);
+ HtmlRendererUtils.decodeUISelectOne(facesContext, uiComponent);
}
}
Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRendererUtils.java?rev=267179&r1=267178&r2=267179&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRendererUtils.java Fri Sep 2 03:31:45 2005
@@ -201,7 +201,7 @@
.get(clientId));
} else {
//see reason for this action at decodeUISelectMany
- ((EditableValueHolder) component).setSubmittedValue( RendererUtils.EMPTY_STRING );
+ ((EditableValueHolder) component).setSubmittedValue( RendererUtils.NOTHING );
}
}
@@ -317,8 +317,15 @@
{
lookup = uiSelectOne.getValue();
}
- String lookupString = RendererUtils.getConvertedStringValue(facesContext, uiComponent, converter, lookup);
- lookupSet = Collections.singleton(lookupString);
+ if(RendererUtils.NOTHING.equals(lookup))
+ {
+ lookupSet = Collections.EMPTY_SET;
+ }
+ else
+ {
+ String lookupString = RendererUtils.getConvertedStringValue(facesContext, uiComponent, converter, lookup);
+ lookupSet = Collections.singleton(lookupString);
+ }
}
return lookupSet;
}