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 2019/08/23 09:27:38 UTC
[myfaces-tobago] 07/07: Tobago-1999: fix selectManyBox
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 682a50382086b6060a4315052b10777d5c2a0647
Author: Volker Weber <v....@inexso.de>
AuthorDate: Wed Aug 21 18:07:47 2019 +0200
Tobago-1999: fix selectManyBox
---
.../component/AbstractUISelectManyBox.java | 24 +++++++++++++++++-----
.../component/AbstractUISelectOneChoice.java | 10 ++++-----
.../standard/tag/SelectManyBoxRenderer.java | 7 ++++---
3 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectManyBox.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectManyBox.java
index 6560cf8..51f928a 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectManyBox.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectManyBox.java
@@ -1,9 +1,23 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by Fernflower decompiler)
+//
+
package org.apache.myfaces.tobago.internal.component;
import org.apache.myfaces.tobago.internal.component.AbstractUISelectOneChoice.Select2Keys;
+import javax.faces.context.FacesContext;
+
public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
+ @Override
+ protected void validateValue(FacesContext context, Object convertedValue) {
+ if (!isAllowCustom()) {
+ super.validateValue(context, convertedValue);
+ }
+ }
+
public boolean isAllowClear() {
Boolean allowClear = (Boolean) getStateHelper().eval(Select2Keys.allowClear);
if (allowClear != null) {
@@ -15,7 +29,7 @@ public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
return getStateHelper().eval(Select2Keys.allowClear) != null;
}
- public void setAllowClear(Boolean allowClear) {
+ public void setAllowClear(boolean allowClear) {
getStateHelper().put(Select2Keys.allowClear, allowClear);
}
@@ -31,7 +45,7 @@ public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
return getStateHelper().eval(Select2Keys.allowCustom) != null;
}
- public void setAllowCustom(Boolean allowCustom) {
+ public void setAllowCustom(boolean allowCustom) {
getStateHelper().put(Select2Keys.allowCustom, allowCustom);
}
@@ -46,7 +60,7 @@ public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
return getStateHelper().eval(Select2Keys.maximumInputLength) != null;
}
- public void setMaximumInputLength(Integer minimumInputLength) {
+ public void setMaximumInputLength(int minimumInputLength) {
getStateHelper().put(Select2Keys.maximumInputLength, minimumInputLength);
}
@@ -61,7 +75,7 @@ public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
return getStateHelper().eval(Select2Keys.minimumInputLength) != null;
}
- public void setMinimumInputLength(Integer minimumInputLength) {
+ public void setMinimumInputLength(int minimumInputLength) {
getStateHelper().put(Select2Keys.minimumInputLength, minimumInputLength);
}
@@ -76,7 +90,7 @@ public abstract class AbstractUISelectManyBox extends AbstractUISelectMany {
return getStateHelper().eval(Select2Keys.maximumSelectionLength) != null;
}
- public void setMaximumSelectionLength(Integer maximumSelectionLength) {
+ public void setMaximumSelectionLength(int maximumSelectionLength) {
getStateHelper().put(Select2Keys.maximumSelectionLength, maximumSelectionLength);
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
index e032037..d29ca83 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
@@ -48,7 +48,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
return getStateHelper().eval(Select2Keys.allowClear) != null;
}
- public void setAllowClear(Boolean allowClear) {
+ public void setAllowClear(boolean allowClear) {
getStateHelper().put(Select2Keys.allowClear, allowClear);
}
@@ -64,7 +64,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
return getStateHelper().eval(Select2Keys.allowCustom) != null;
}
- public void setAllowCustom(Boolean allowCustom) {
+ public void setAllowCustom(boolean allowCustom) {
getStateHelper().put(Select2Keys.allowCustom, allowCustom);
}
@@ -79,7 +79,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
return getStateHelper().eval(Select2Keys.maximumInputLength) != null;
}
- public void setMaximumInputLength(Integer minimumInputLength) {
+ public void setMaximumInputLength(int minimumInputLength) {
getStateHelper().put(Select2Keys.maximumInputLength, minimumInputLength);
}
@@ -94,7 +94,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
return getStateHelper().eval(Select2Keys.minimumInputLength) != null;
}
- public void setMinimumInputLength(Integer minimumInputLength) {
+ public void setMinimumInputLength(int minimumInputLength) {
getStateHelper().put(Select2Keys.minimumInputLength, minimumInputLength);
}
@@ -109,7 +109,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
return getStateHelper().eval(Select2Keys.maximumSelectionLength) != null;
}
- public void setMaximumSelectionLength(Integer maximumSelectionLength) {
+ public void setMaximumSelectionLength(int maximumSelectionLength) {
getStateHelper().put(Select2Keys.maximumSelectionLength, maximumSelectionLength);
}
diff --git a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
index ddb1950..6ec5699 100644
--- a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
+++ b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
@@ -27,6 +27,7 @@ import org.apache.myfaces.tobago.renderkit.css.Classes;
import org.apache.myfaces.tobago.renderkit.css.Style;
import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
+import org.apache.myfaces.tobago.renderkit.html.Select2Options;
import org.apache.myfaces.tobago.renderkit.html.util.HtmlRendererUtils;
import org.apache.myfaces.tobago.renderkit.util.SelectItemUtils;
import org.apache.myfaces.tobago.util.ComponentUtils;
@@ -61,11 +62,11 @@ public class SelectManyBoxRenderer extends SelectManyRendererBase {
final String id = select.getClientId(facesContext);
final Iterable<SelectItem> items = SelectItemUtils.getItemIterator(facesContext, select);
final boolean readonly = select.isReadonly();
- final boolean disabled = !items.iterator().hasNext() || select.isDisabled() || readonly;
+ final boolean disabled = (!items.iterator().hasNext() && !select.isAllowCustom())
+ || select.isDisabled() || readonly;
final Style style = new Style(facesContext, select);
- ComponentUtils.putDataAttribute(select, "tobago-select2", "{}");
-
+ ComponentUtils.putDataAttribute(select, "tobago-select2", Select2Options.of(select).toJson());
final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, select);
writer.startElement(HtmlElements.DIV, select);