You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2020/07/09 08:59:33 UTC

[myfaces-tobago] 09/09: Tobago-1999: SelectItemIterator iterates only once

This is an automated email from the ASF dual-hosted git repository.

weber pushed a commit to branch TOBAGO-1999_Select2
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 7e404c8c80dee74a3a72dff4908c2297b9d54f71
Author: Volker Weber <v....@inexso.de>
AuthorDate: Tue Apr 28 14:22:41 2020 +0200

    Tobago-1999: SelectItemIterator iterates only once
---
 .../tobago/internal/util/UISelect2ComponentUtil.java | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/UISelect2ComponentUtil.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/UISelect2ComponentUtil.java
index 758e05a..de43bd7 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/UISelect2ComponentUtil.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/UISelect2ComponentUtil.java
@@ -140,8 +140,10 @@ public class UISelect2ComponentUtil {
       return items;
     }
     Converter converter = component.getConverter();
+    List<javax.faces.model.SelectItem> itemsToRender = new ArrayList<javax.faces.model.SelectItem>();
     Map<String, javax.faces.model.SelectItem> optionValues = new HashMap<String, javax.faces.model.SelectItem>();
     for (javax.faces.model.SelectItem item : items) {
+      itemsToRender.add(item);
       if (converter != null) {
         optionValues.put(converter.getAsString(facesContext, component, item.getValue()), item);
       } else {
@@ -149,24 +151,12 @@ public class UISelect2ComponentUtil {
       }
     }
 
-
-    List<javax.faces.model.SelectItem> itemsToRender = new ArrayList<javax.faces.model.SelectItem>();
     for (String submittedValue : submittedValues) {
-      if (optionValues.keySet().contains(submittedValue)) {
-        optionValues.remove(submittedValue);
-      } else {
+      if (!optionValues.keySet().contains(submittedValue)) {
         itemsToRender.add(new SubmittedItem(submittedValue));
       }
     }
-    if (itemsToRender.isEmpty()) {
-      return items;
-    } else {
-      for (javax.faces.model.SelectItem item : items) {
-        if (optionValues.values().contains(item)) {
-          itemsToRender.add(item);
-        }
-      }
-      return itemsToRender;
-    }
+
+    return itemsToRender;
   }
 }