This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new d27e49e30a ISIS-3250: adds config option for enable/disable
clear-field button
d27e49e30a is described below
commit d27e49e30aad788b1773ce0ae5316388fabdfea0
Author: Andi Huber <[email protected]>
AuthorDate: Fri Oct 14 10:41:33 2022 +0200
ISIS-3250: adds config option for enable/disable clear-field button
---
.../apache/isis/core/config/IsisConfiguration.java | 24 +++++++++++++++-------
.../components/scalars/ScalarPanelAbstract2.java | 3 ++-
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git
a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index 6679ae37f9..aa6d94c0a1 100644
---
a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++
b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -34,6 +34,12 @@ import java.util.Optional;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
import javax.activation.DataSource;
import javax.inject.Named;
import javax.validation.Constraint;
@@ -65,21 +71,15 @@ import
org.apache.isis.applib.value.semantics.TemporalValueSemantics.TemporalEdi
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.core.config.metamodel.facets.ActionConfigOptions;
-import
org.apache.isis.core.config.metamodel.facets.DomainObjectLayoutConfigOptions;
import
org.apache.isis.core.config.metamodel.facets.CollectionLayoutConfigOptions;
import org.apache.isis.core.config.metamodel.facets.DomainObjectConfigOptions;
+import
org.apache.isis.core.config.metamodel.facets.DomainObjectLayoutConfigOptions;
import org.apache.isis.core.config.metamodel.facets.ParameterConfigOptions;
import org.apache.isis.core.config.metamodel.facets.PropertyConfigOptions;
import
org.apache.isis.core.config.metamodel.services.ApplicationFeaturesInitConfiguration;
import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
import org.apache.isis.core.config.viewer.web.DialogMode;
-import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@@ -2012,6 +2012,16 @@ public class IsisConfiguration {
*/
private boolean clearOriginalDestination = false;
+ /**
+ * Whether the clear-field-button, that allows to clear a
null-able (optional) field
+ * (a property or a dialog argument) is enabled for rendering or
not.
+ *
+ * <p>
+ * The default is to enable (show) the clear-field-button.
+ * </p>
+ */
+ private boolean clearFieldButtonEnabled = true;
+
/**
* Whether the dialog mode rendered when invoking actions on
domain objects should be to use
* the sidebar (the default) or to use a modal dialog.
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 0849951c14..c5d2ed69cb 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -245,7 +245,8 @@ extends ScalarPanelAbstract {
// add clear-field-button (only if feature is not required and not
already cleared)
val isClearFieldButtonVisible =
- !scalarModel().isRequired()
+ getWicketViewerSettings().isClearFieldButtonEnabled()
+ && !scalarModel().isRequired()
&& scalarModel().proposedValue().isPresent();
if(isClearFieldButtonVisible) {