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();