diff --git a/nuxeo-platform-ui-web/src/main/java/org/nuxeo/ecm/platform/ui/web/util/SelectionActionsBean.java b/nuxeo-platform-ui-web/src/main/java/org/nuxeo/ecm/platform/ui/web/util/SelectionActionsBean.java index b65aa59..720f431 100644 --- a/nuxeo-platform-ui-web/src/main/java/org/nuxeo/ecm/platform/ui/web/util/SelectionActionsBean.java +++ b/nuxeo-platform-ui-web/src/main/java/org/nuxeo/ecm/platform/ui/web/util/SelectionActionsBean.java @@ -330,6 +330,10 @@ public class SelectionActionsBean implements Serializable { * Must pass request parameters "selectorId" holding the id of component * holding the value to pass to the other component, and "valueHolderId" * holding the other component id. + *
+ * Since 5.6, selection is retrieved from submitted value if component is
+ * an instance of {@link EditableValueHolder}, and defaults its value if
+ * submitted value is null.
*
* @since 5.5
* @param event
@@ -339,7 +343,14 @@ public class SelectionActionsBean implements Serializable {
ValueHolder selectComp = ComponentUtils.getComponent(eventComp,
selectorId, ValueHolder.class);
if (selectComp != null) {
- Object value = selectComp.getValue();
+ Object value = null;
+ if (selectComp instanceof EditableValueHolder) {
+ EditableValueHolder editComp = (EditableValueHolder) selectComp;
+ value = editComp.getSubmittedValue();
+ }
+ if (value == null) {
+ value = selectComp.getValue();
+ }
ValueHolder valueHolderComp = ComponentUtils.getComponent(
eventComp, valueHolderId, ValueHolder.class);
if (valueHolderComp != null) {
diff --git a/nuxeo-platform-webapp-base/src/main/resources/OSGI-INF/ecm-types-contrib.xml b/nuxeo-platform-webapp-base/src/main/resources/OSGI-INF/ecm-types-contrib.xml
index f3b9c0e..0140d49 100644
--- a/nuxeo-platform-webapp-base/src/main/resources/OSGI-INF/ecm-types-contrib.xml
+++ b/nuxeo-platform-webapp-base/src/main/resources/OSGI-INF/ecm-types-contrib.xml
@@ -138,6 +138,7 @@