You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2015/06/10 08:36:13 UTC
svn commit: r1684571 - in /myfaces/tobago/branches/tobago-3.0.x: ./
tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/
tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/
tobago-t...
Author: deki
Date: Wed Jun 10 06:36:12 2015
New Revision: 1684571
URL: http://svn.apache.org/r1684571
Log:
Merge from trunk
TOBAGO-1446
Different behavior in render classes submitted value is used for select***
Modified:
myfaces/tobago/branches/tobago-3.0.x/ (props changed)
myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/SelectManyRendererBase.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyListboxRenderer.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyShuttleRenderer.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneListboxRenderer.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneRadioRenderer.java
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/util/HtmlRendererUtils.java
Propchange: myfaces/tobago/branches/tobago-3.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 10 06:36:12 2015
@@ -1,3 +1,3 @@
/myfaces/tobago/branches/tobago-1.5.x:1356585,1357124
/myfaces/tobago/branches/tobago-tree-table:1226794-1341423
-/myfaces/tobago/trunk:1571193,1571804,1571816,1571941,1571945,1571962,1571966,1576730,1589960,1591854,1600239,1600818,1601860,1602151,1602154,1602343,1604224,1606201,1607642,1609696-1609697,1609718,1610942,1610948,1610970,1610989,1611011,1611259,1611264,1611276,1611329,1611338-1611339,1611571,1613015,1613032,1614827,1614853,1615053,1615114,1615121,1617310,1619789,1621101,1621107,1621134,1621156,1621264,1621282,1621332,1622222,1622243,1622508,1623934,1624033,1625968,1625972,1626270,1628899,1628953,1636842,1636911,1640117,1640147,1640541,1640548,1640638,1640761,1640917,1641575,1641635,1641772,1641775,1641777,1656502,1657180,1657269,1657276,1657279,1658909,1658912,1659026,1659031,1660696,1660699,1660708,1660714,1665569,1666464,1668147,1668153,1668249,1675330,1675565,1675584,1675588-1675589,1675636,1679031,1680197,1681981,1682448,1682545,1682548,1683231,1683306,1683373
+/myfaces/tobago/trunk:1571193,1571804,1571816,1571941,1571945,1571962,1571966,1576730,1589960,1591854,1600239,1600818,1601860,1602151,1602154,1602343,1604224,1606201,1607642,1609696-1609697,1609718,1610942,1610948,1610970,1610989,1611011,1611259,1611264,1611276,1611329,1611338-1611339,1611571,1613015,1613032,1614827,1614853,1615053,1615114,1615121,1617310,1619789,1621101,1621107,1621134,1621156,1621264,1621282,1621332,1622222,1622243,1622508,1623934,1624033,1625968,1625972,1626270,1628899,1628953,1636842,1636911,1640117,1640147,1640541,1640548,1640638,1640761,1640917,1641575,1641635,1641772,1641775,1641777,1656502,1657180,1657269,1657276,1657279,1658909,1658912,1659026,1659031,1660696,1660699,1660708,1660714,1665486,1665569,1666464,1668147,1668153,1668249,1675330,1675565,1675584,1675588-1675589,1675636,1679031,1680197,1681981,1682448,1682545,1682548,1683231,1683306,1683373
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/SelectManyRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/SelectManyRendererBase.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/SelectManyRendererBase.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/SelectManyRendererBase.java Wed Jun 10 06:36:12 2015
@@ -30,6 +30,7 @@ import javax.faces.application.ProjectSt
import javax.faces.component.UIComponent;
import javax.faces.component.UISelectItem;
import javax.faces.component.UISelectItems;
+import javax.faces.component.UIInput;
import javax.faces.component.UISelectMany;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
@@ -83,6 +84,10 @@ public class SelectManyRendererBase exte
}
}
+ public String[] getSubmittedValues(UIInput input) {
+ return (String[]) input.getSubmittedValue();
+ }
+
public Object getConvertedValue(
final FacesContext facesContext, final UIComponent component, final Object submittedValue)
throws ConverterException {
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyListboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyListboxRenderer.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyListboxRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyListboxRenderer.java Wed Jun 10 06:36:12 2015
@@ -82,7 +82,8 @@ public class SelectManyListboxRenderer e
}
HtmlRendererUtils.renderCommandFacet(select, facesContext, writer);
final Object[] values = select.getSelectedValues();
- HtmlRendererUtils.renderSelectItems(select, items, values, writer, facesContext);
+ final String[] submittedValues = getSubmittedValues(select);
+ HtmlRendererUtils.renderSelectItems(select, items, values, submittedValues, writer, facesContext);
writer.endElement(HtmlElements.SELECT);
}
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyShuttleRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyShuttleRenderer.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyShuttleRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyShuttleRenderer.java Wed Jun 10 06:36:12 2015
@@ -79,7 +79,8 @@ public class SelectManyShuttleRenderer e
writer.writeAttribute(HtmlAttributes.MULTIPLE, HtmlAttributes.MULTIPLE, false);
final Object[] values = select.getSelectedValues();
- HtmlRendererUtils.renderSelectItems(select, items, values, false, writer, facesContext);
+ final String[] submittedValues = getSubmittedValues(select);
+ HtmlRendererUtils.renderSelectItems(select, items, values, submittedValues, false, writer, facesContext);
writer.endElement(HtmlElements.SELECT);
writer.startElement(HtmlElements.DIV, null);
@@ -109,7 +110,7 @@ public class SelectManyShuttleRenderer e
writer.writeClassAttribute(Classes.create(select, "selected"));
writer.writeAttribute(HtmlAttributes.MULTIPLE, HtmlAttributes.MULTIPLE, false);
items = SelectItemUtils.getItemIterator(facesContext, select);
- HtmlRendererUtils.renderSelectItems(select, items, values, true, writer, facesContext);
+ HtmlRendererUtils.renderSelectItems(select, items, values, submittedValues, true, writer, facesContext);
writer.endElement(HtmlElements.SELECT);
writer.startElement(HtmlElements.SELECT, select);
@@ -121,7 +122,7 @@ public class SelectManyShuttleRenderer e
writer.writeAttribute(HtmlAttributes.REQUIRED, select.isRequired());
HtmlRendererUtils.renderCommandFacet(select, facesContext, writer);
items = SelectItemUtils.getItemIterator(facesContext, select);
- HtmlRendererUtils.renderSelectItems(select, items, values, writer, facesContext);
+ HtmlRendererUtils.renderSelectItems(select, items, values, submittedValues, writer, facesContext);
writer.endElement(HtmlElements.SELECT);
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java Wed Jun 10 06:36:12 2015
@@ -79,9 +79,7 @@ public class SelectOneChoiceRenderer ext
HtmlRendererUtils.renderCommandFacet(select, facesContext , writer);
HtmlRendererUtils.renderFocus(id, select.isFocus(), ComponentUtils.isError(select), facesContext, writer);
- final Object[] values = {select.getValue()};
-
- HtmlRendererUtils.renderSelectItems(select, items, values, writer, facesContext);
+ HtmlRendererUtils.renderSelectItems(select, items, select.getValue(), (String) select.getSubmittedValue(), writer, facesContext);
writer.endElement(HtmlElements.SELECT);
super.encodeEnd(facesContext, select);
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneListboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneListboxRenderer.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneListboxRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneListboxRenderer.java Wed Jun 10 06:36:12 2015
@@ -81,8 +81,8 @@ public class SelectOneListboxRenderer ex
}
writer.writeAttribute(HtmlAttributes.SIZE, 9); // must be > 1, but the real size comes from the layout
HtmlRendererUtils.renderCommandFacet(select, facesContext, writer);
- final Object[] values = {select.getValue()};
- HtmlRendererUtils.renderSelectItems(select, items, values, writer, facesContext);
+ HtmlRendererUtils.renderSelectItems(select, items, select.getValue(), (String) select.getSubmittedValue(),
+ writer, facesContext);
writer.endElement(HtmlElements.SELECT);
super.encodeEnd(facesContext, select);
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneRadioRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneRadioRenderer.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneRadioRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneRadioRenderer.java Wed Jun 10 06:36:12 2015
@@ -78,6 +78,7 @@ public class SelectOneRadioRenderer exte
}
boolean first = true;
final Object value = select.getValue();
+ final String submittedValue = (String) select.getSubmittedValue();
int i = 0;
for (final SelectItem item : items) {
final boolean itemDisabled = item.isDisabled() || disabled;
@@ -91,11 +92,16 @@ public class SelectOneRadioRenderer exte
writer.startElement(HtmlElements.LABEL, null);
writer.startElement(HtmlElements.INPUT, select);
writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.RADIO, false);
- final boolean checked = ObjectUtils.equals(item.getValue(), value);
+ final String formattedValue = RenderUtils.getFormattedValue(facesContext, select, item.getValue());
+ boolean checked;
+ if (submittedValue == null) {
+ checked = ObjectUtils.equals(item.getValue(), value);
+ } else {
+ checked = ObjectUtils.equals(formattedValue, submittedValue);
+ }
writer.writeAttribute(HtmlAttributes.CHECKED, checked);
writer.writeNameAttribute(id);
writer.writeIdAttribute(itemId);
- final String formattedValue = RenderUtils.getFormattedValue(facesContext, select, item.getValue());
writer.writeAttribute(HtmlAttributes.VALUE, formattedValue, true);
writer.writeAttribute(HtmlAttributes.DISABLED, itemDisabled);
writer.writeAttribute(HtmlAttributes.READONLY, readonly);
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/util/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/util/HtmlRendererUtils.java?rev=1684571&r1=1684570&r2=1684571&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/util/HtmlRendererUtils.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/util/HtmlRendererUtils.java Wed Jun 10 06:36:12 2015
@@ -182,18 +182,42 @@ public final class HtmlRendererUtils {
return title;
}
- public static void renderSelectItems(
- final UIInput component, final Iterable<SelectItem> items, final Object[] values,
+ /**
+ * @deprecated Since Tobago 2.0.7
+ */
+ @Deprecated
+ public static void renderSelectItems(final UIInput component, final Iterable<SelectItem> items, final Object[] values,
final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
- renderSelectItems(component, items, values, null, writer, facesContext);
+ renderSelectItems(component, items, values, null, null, writer, facesContext);
+ }
+
+ public static void renderSelectItems(final UIInput component, final Iterable<SelectItem> items, final Object[] values,
+ final String[] submittedValues, final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
+ renderSelectItems(component, items, values, submittedValues, null, writer, facesContext);
}
+ public static void renderSelectItems(final UIInput component, final Iterable<SelectItem> items, final Object value,
+ final String submittedValue, final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
+ renderSelectItems(component, items, value != null ? new Object[] {value}: null, submittedValue != null ? new String[] {submittedValue}: null, null, writer, facesContext);
+ }
+
+ /**
+ * @deprecated Since Tobago 2.0.7
+ */
+ @Deprecated
public static void renderSelectItems(
- final UIInput component, final Iterable<SelectItem> items, final Object[] values, final Boolean onlySelected,
- final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
+ final UIInput component, final Iterable<SelectItem> items, final Object[] values,
+ final Boolean onlySelected, final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
+ renderSelectItems(component, items, values, null, onlySelected, writer, facesContext);
+ }
+ public static void renderSelectItems(
+ final UIInput component, final Iterable<SelectItem> items, final Object[] values, final String[] submittedValues,
+ final Boolean onlySelected, final TobagoResponseWriter writer, final FacesContext facesContext) throws IOException {
if (LOG.isDebugEnabled()) {
- LOG.debug("value = '" + Arrays.toString(values) + "'");
+ LOG.debug("component id = '{}'", component.getId());
+ LOG.debug("values = '{}'", Arrays.toString(values));
+ LOG.debug("submittedValues = '{}'", Arrays.toString(submittedValues));
}
for (final SelectItem item : items) {
if (item instanceof SelectItemGroup) {
@@ -203,7 +227,7 @@ public final class HtmlRendererUtils {
writer.writeAttribute(HtmlAttributes.DISABLED, true);
}
final SelectItem[] selectItems = ((SelectItemGroup) item).getSelectItems();
- renderSelectItems(component, Arrays.asList(selectItems), values, onlySelected, writer, facesContext);
+ renderSelectItems(component, Arrays.asList(selectItems), values, submittedValues, onlySelected, writer, facesContext);
writer.endElement(HtmlElements.OPTGROUP);
} else {
@@ -212,7 +236,13 @@ public final class HtmlRendererUtils {
if (itemValue instanceof String && values != null && values.length > 0 && !(values[0] instanceof String)) {
itemValue = ComponentUtils.getConvertedValue(facesContext, component, (String) itemValue);
}
- final boolean contains = RenderUtils.contains(values, itemValue);
+ final String formattedValue = RenderUtils.getFormattedValue(facesContext, component, itemValue);
+ boolean contains;
+ if (submittedValues == null) {
+ contains = RenderUtils.contains(values, itemValue);
+ } else {
+ contains = RenderUtils.contains(submittedValues, formattedValue);
+ }
if (onlySelected != null) {
if (onlySelected) {
if (!contains) {
@@ -225,7 +255,6 @@ public final class HtmlRendererUtils {
}
}
writer.startElement(HtmlElements.OPTION, null);
- final String formattedValue = RenderUtils.getFormattedValue(facesContext, component, itemValue);
writer.writeAttribute(HtmlAttributes.VALUE, formattedValue, true);
if (item instanceof org.apache.myfaces.tobago.model.SelectItem) {
final String image = ((org.apache.myfaces.tobago.model.SelectItem) item).getImage();