You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/03/21 16:04:50 UTC

[isis] branch master updated: ISIS-2877: prepare removal of TextFieldVariant

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 2475254  ISIS-2877: prepare removal of TextFieldVariant
2475254 is described below

commit 2475254ef35d5e4dc7f2e3d53323881030fa311b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 21 17:04:40 2022 +0100

    ISIS-2877: prepare removal of TextFieldVariant
---
 .../testdomain/conf/Configuration_usingWicket.java |  4 +--
 .../components/scalars/ScalarFragmentFactory.java  | 11 ++------
 .../ui/components/scalars/ScalarPanelAbstract.java | 30 +++++++++++++---------
 .../scalars/ScalarPanelFormFieldAbstract.html      |  4 +--
 .../scalars/ScalarPanelFormFieldAbstract.java      | 11 ++++----
 .../scalars/ScalarPanelTextFieldAbstract.java      | 17 +++---------
 .../scalars/ScalarPanelTextFieldWithComposite.java | 10 ++++++--
 .../ui/components/scalars/TextFieldVariant.java    |  1 +
 .../scalars/markup/ScalarMarkupPanel.java          | 11 ++++++--
 9 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
index 2c76f32..6708123 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
@@ -142,14 +142,14 @@ public class Configuration_usingWicket {
 
         public static final String INVENTORY_NAME_PROPERTY_EDIT_INLINE_FORM_TEXTFIELD = INVENTORY_NAME_PROPERTY
                 + ":property:scalarNameAndValue:scalarTypeContainer:scalarIfRegular:"
-                + RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId() + ":scalarValue";
+                + RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId() + ":scalarValue";
 
         public static final String INVENTORY_NAME_PROPERTY_EDIT_INLINE_PROMPT_FORM = INVENTORY_NAME_PROPERTY
                 + ":scalarTypeContainer:scalarIfRegularInlinePromptForm:inputForm";
 
         public static final String INLINE_PROMPT_FORM_FIELD = ""
                 + "property:scalarNameAndValue:scalarTypeContainer:scalarIfRegular:"
-                + RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId() + ":scalarValue";
+                + RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId() + ":scalarValue";
 
         public static final String INLINE_PROMPT_FORM_OK = INVENTORY_NAME_PROPERTY_EDIT_INLINE_PROMPT_FORM
                 + ":okButton";
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
index fd01846..035d3e9 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
@@ -23,7 +23,6 @@ import java.util.function.Function;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.IModel;
@@ -31,7 +30,6 @@ import org.springframework.lang.Nullable;
 
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
-import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -57,12 +55,10 @@ public class ScalarFragmentFactory {
     @RequiredArgsConstructor
     public static enum RegularFrame {
 
-        @Deprecated
         SCALAR_VALUE_INLINE_PROMPT_LINK("scalarValueInlinePromptLink"),
 
-        @Deprecated
         OUTPUT_FORMAT_CONTAINER("container-scalarValue-outputFormat"),
-        SCALAR_VALUE_CONTAINER("container-scalarValue"),
+        INPUT_FORMAT_CONTAINER("container-scalarValue-inputFormat"),
 
         EDIT_PROPERTY("editProperty"),
         FEEDBACK("feedback"),
@@ -105,7 +101,7 @@ public class ScalarFragmentFactory {
         private final String fragmentId;
         public Fragment createFragment(final MarkupContainer container, final FormComponent<?> inputComponent) {
             val fragment = Wkt.fragmentAdd(
-                    container, RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId(), fragmentId);
+                    container, RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId(), fragmentId);
             fragment.add(inputComponent);
             return fragment;
         }
@@ -115,9 +111,6 @@ public class ScalarFragmentFactory {
 
     @RequiredArgsConstructor
     public static enum PromptFragment {
-        EDIT_ICON("fragment-prompt-editicon", promptLabelModel->
-            WktTooltips.addTooltip(
-                new Button(ScalarPanelAbstract.ID_SCALAR_VALUE), "Click to edit")),
         LABEL("fragment-prompt-label", promptLabelModel->
             Wkt.label(ScalarPanelAbstract.ID_SCALAR_VALUE, promptLabelModel)),
         TEXTAREA("fragment-prompt-textarea", promptLabelModel->
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 1b65ad7..aab6e33 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -37,6 +38,7 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.collections.ImmutableEnumSet;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.debug._Probe;
@@ -90,6 +92,14 @@ implements ScalarModelSubscriber {
     protected static final String ID_SCALAR_NAME = "scalarName";
     protected static final String ID_SCALAR_VALUE = "scalarValue";
 
+    public enum FormatModifier {
+        READONLY,
+        MARKUP,
+        MULITLINE,
+        TRISTATE,
+        FLEX, COMPOSITE
+    }
+
     public enum Repaint {
         ENTIRE_FORM,
         PARAM_ONLY,
@@ -100,7 +110,6 @@ implements ScalarModelSubscriber {
     public static class InlinePromptConfig {
         @Getter private final boolean supported;
         private final Component componentToHideIfAny;
-        @Getter private final boolean useEditIconWithLink;
 
         public static InlinePromptConfig supported() {
             return new InlinePromptConfig(true, null);
@@ -114,16 +123,6 @@ implements ScalarModelSubscriber {
             return new InlinePromptConfig(true, componentToHideIfAny);
         }
 
-        private InlinePromptConfig(final boolean supported, final Component componentToHideIfAny) {
-            this.supported = supported;
-            this.componentToHideIfAny = componentToHideIfAny;
-            this.useEditIconWithLink = false;
-        }
-
-        public InlinePromptConfig withEditIcon() {
-            return new InlinePromptConfig(supported, componentToHideIfAny, true);
-        }
-
         public Optional<Component> getComponentToHide() {
             return Optional.ofNullable(componentToHideIfAny);
         }
@@ -137,6 +136,12 @@ implements ScalarModelSubscriber {
     @Getter @Accessors(fluent = true)
     private final ScalarModel scalarModel;
 
+    @Getter
+    private final ImmutableEnumSet<FormatModifier> formatModifiers;
+    protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+        return EnumSet.noneOf(FormatModifier.class);
+    }
+
     // -- COMPACT FRAME
 
     private Component frameIfCompact;
@@ -177,6 +182,7 @@ implements ScalarModelSubscriber {
     protected ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
         super(id, scalarModel);
         this.scalarModel = scalarModel;
+        this.formatModifiers = ImmutableEnumSet.from(createFormatModifiers(scalarModel));
     }
 
     // -- INIT
@@ -500,7 +506,7 @@ implements ScalarModelSubscriber {
         if(condition) {
             val editProperty = Wkt.containerAdd(frameIfRegular, editLinkId);
             Wkt.behaviorAddOnClick(editProperty, this::onPropertyEditClick);
-            WktTooltips.addTooltip(editProperty, "edit");
+            WktTooltips.addTooltip(editProperty, "Click to edit");
             return editProperty;
         } else {
             WktComponents.permanentlyHide(frameIfRegular, editLinkId);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
index deca769..4852d2d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
@@ -45,9 +45,9 @@
 										 
 								</a> 
 							
-								<!-- container scalarValue -->
+								<!-- input format (when editing or action dialog) -->
 								<wicket:container 
-										wicket:id="container-scalarValue" />
+										wicket:id="container-scalarValue-inputFormat" />
 								
 								<a wicket:id="editProperty"
 									href="##" class="edit btn btn-sm btn-link"> 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
index 8a2b569..245d325 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
@@ -38,9 +38,9 @@ import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.model.util.CommonContextUtils;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
 import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
@@ -146,14 +146,15 @@ extends ScalarPanelAbstract2 {
 
     protected void onFormGroupCreated(final FormGroup formGroup) {
         if(scalarModel().isViewMode()
-                && getInlinePromptConfig().isUseEditIconWithLink()) {
-            formGroup.add(RegularFrame.SCALAR_VALUE_CONTAINER
+                //TODO remove this non intuitive logic
+                && getFormatModifiers().contains(FormatModifier.MARKUP)) {
+            formGroup.add(RegularFrame.INPUT_FORMAT_CONTAINER
                     .createComponent(this::createComponentForOutput));
             return;
         }
         getInputFragmentType()
-            .ifPresent(regularFragmentType->
-                formGroup.add(regularFragmentType.createFragment(this, getFormComponent())));
+            .ifPresent(inputFragmentType->
+                formGroup.add(inputFragmentType.createFragment(this, getFormComponent())));
     }
 
     protected IValidator<Object> createValidator(final ScalarModel scalarModel) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 9c6d385..c7e78e2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -31,7 +31,6 @@ import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.validation.validator.StringValidator;
 
 import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
@@ -155,19 +154,11 @@ extends ScalarPanelFormFieldAbstract<T> {
     protected final Component createInlinePromptComponent(
             final String id,
             final IModel<String> inlinePromptLabelModel) {
-
-        if(getInlinePromptConfig().isUseEditIconWithLink()) {
-            return PromptFragment.EDIT_ICON.createFragment(this, inlinePromptLabelModel, null);
-        }
-
-        switch(getTextFieldVariant()) {
-        case SINGLE_LINE:
-            return PromptFragment.LABEL.createFragment(this, inlinePromptLabelModel, null);
-        case MULTI_LINE:
-            return PromptFragment.TEXTAREA.createFragment(this, inlinePromptLabelModel, this::setFormComponentAttributes);
-        default:
-            throw _Exceptions.unmatchedCase(getTextFieldVariant());
+        if(getFormatModifiers().contains(FormatModifier.MULITLINE)) {
+            return PromptFragment.TEXTAREA
+                    .createFragment(this, inlinePromptLabelModel, this::setFormComponentAttributes);
         }
+        return PromptFragment.LABEL.createFragment(this, inlinePromptLabelModel, null);
     }
 
     // -- CONVERSION
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
index 6712c04..73e82b5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
@@ -18,11 +18,15 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
+import java.util.EnumSet;
+
 import org.apache.wicket.Component;
 
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 
+import lombok.val;
+
 public class ScalarPanelTextFieldWithComposite<T>
 extends ScalarPanelTextFieldWithValueSemantics<T> {
 
@@ -37,8 +41,10 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
     }
 
     @Override
-    protected InlinePromptConfig getInlinePromptConfig() {
-        return super.getInlinePromptConfig().withEditIcon();
+    protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+        val modifiers = super.createFormatModifiers(scalarModel);
+        modifiers.add(FormatModifier.COMPOSITE);
+        return modifiers;
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
index 4d12c5a..87492f8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
+@Deprecated //use FormatModifier instead
 public enum TextFieldVariant {
     SINGLE_LINE,
     MULTI_LINE;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
index a7b9432..ebe02ec 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
@@ -18,12 +18,16 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.scalars.markup;
 
+import java.util.EnumSet;
+
 import org.apache.wicket.Component;
 
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
 import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldVariant;
 
+import lombok.val;
+
 /**
  * Panel for rendering scalars of type {@link org.apache.isis.applib.value.Markup}.
  */
@@ -44,8 +48,11 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
     }
 
     @Override
-    protected InlinePromptConfig getInlinePromptConfig() {
-        return super.getInlinePromptConfig().withEditIcon();
+    protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+        val modifiers = super.createFormatModifiers(scalarModel);
+        modifiers.add(FormatModifier.MARKUP);
+        modifiers.add(FormatModifier.MULITLINE);
+        return modifiers;
     }
 
     @Override