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/03 14:46:44 UTC

[isis] branch master updated: ISIS-2877: more refactoring around scalar panels

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 267f5ab  ISIS-2877: more refactoring around scalar panels
267f5ab is described below

commit 267f5ab80e48bf9c8f2afed3d9ce6cbf6a52dea8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Mar 3 15:46:35 2022 +0100

    ISIS-2877: more refactoring around scalar panels
---
 .../ui/components/scalars/ScalarPanelAbstract.java |  3 ++-
 .../scalars/ScalarPanelTextFieldAbstract.java      | 28 ++++++++--------------
 .../scalars/ScalarPanelTextFieldNumeric.java       |  6 -----
 .../ScalarPanelTextFieldWithTemporalPicker.java    |  6 -----
 .../scalars/markup/ParentedMarkupPanel.java        | 21 ++++++----------
 5 files changed, 19 insertions(+), 45 deletions(-)

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 5c8727d..2657293 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
@@ -621,7 +621,8 @@ implements ScalarModelSubscriber {
     // ///////////////////////////////////////////////////////////////////
 
     /**
-     * Components returning true for {@link #getInlinePromptConfig()} are required to override and return a non-null value.
+     * Components returning true for {@link #getInlinePromptConfig()}
+     * are required to override and return a non-null value.
      */
     protected IModel<String> obtainInlinePromptModel() {
         return null;
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 b6c668b..87e1648 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
@@ -142,14 +142,10 @@ implements TextFieldValueModel.ScalarModelProvider {
     @Override
     protected void onFormGroupCreated(final FormGroup formGroup) {
         super.onFormGroupCreated(formGroup);
-        formGroup.add(createScalarValueContainer(ID_SCALAR_VALUE_CONTAINER));
-        setTextFieldSizeAndMaxLengthIfSpecified();
-    }
-
-    protected Component createScalarValueContainer(final String id) {
-        final Fragment textFieldFragment = new Fragment(id, getTextFieldFragmentId(), this);
+        val textFieldFragment = new Fragment(ID_SCALAR_VALUE_CONTAINER, getTextFieldFragmentId(), this);
         textFieldFragment.add(getFormComponent());
-        return textFieldFragment;
+        formGroup.add(textFieldFragment);
+        setTextFieldSizeAndMaxLengthIfSpecified();
     }
 
     protected String getTextFieldFragmentId() {
@@ -254,14 +250,14 @@ implements TextFieldValueModel.ScalarModelProvider {
         }
     }
 
-
-    // //////////////////////////////////////
+    // -- CONVERSION
 
     @Override
-    protected IModel<String> obtainInlinePromptModel() {
-        IModel<?> model = getFormComponent().getModel();
-        // must be "live", for ajax updates.
-        return _Casts.uncheckedCast(model);
+    protected final IModel<String> obtainInlinePromptModel() {
+        val converter = getConverter(scalarModel());
+        return converter!=null
+                ? new ToStringConvertingModel<>(converter)
+                :  _Casts.uncheckedCast(getFormComponent().getModel());
     }
 
     protected class ToStringConvertingModel<X> extends Model<String> {
@@ -285,11 +281,7 @@ implements TextFieldValueModel.ScalarModelProvider {
         }
     }
 
-    protected ToStringConvertingModel<T> toStringConvertingModelOf(final IConverter<T> converter) {
-        return new ToStringConvertingModel<>(converter);
-    }
-
-    // //////////////////////////////////////
+    // -- HELPER
 
     private static Integer getMaxLengthOf(final @NonNull ScalarModel model) {
         return model.getScalarTypeSpec()
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index a49d76d..1158102 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 import java.io.Serializable;
 
 import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
 
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
@@ -52,9 +51,4 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
         return label;
     }
 
-    @Override
-    protected final IModel<String> obtainInlinePromptModel() {
-        return super.toStringConvertingModelOf(getConverter(scalarModel()));
-    }
-
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
index 98ad8d7..83d29ab 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 import java.io.Serializable;
 
 import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -58,9 +57,4 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
         return "date";
     }
 
-    @Override
-    protected IModel<String> obtainInlinePromptModel() {
-        return super.toStringConvertingModelOf(getConverter(scalarModel()));
-    }
-
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ParentedMarkupPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ParentedMarkupPanel.java
index f325569..36bddfd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ParentedMarkupPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ParentedMarkupPanel.java
@@ -21,13 +21,11 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.markup;
 import java.io.Serializable;
 
 import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
 
 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;
+import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 
 /**
  * Panel for rendering scalars of type {@link org.apache.isis.applib.value.Markup}.
@@ -49,13 +47,13 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
     }
 
     @Override
-    protected Component createScalarValueContainer(final String id) {
-        val scalarModel = scalarModel();
-        if(scalarModel.isEditMode()) {
+    protected void onFormGroupCreated(final FormGroup formGroup) {
+        if(scalarModel().isEditMode()) {
             // fallback to text area
-            return super.createScalarValueContainer(id);
+            super.onFormGroupCreated(formGroup);
+        } else {
+            formGroup.add(createMarkupComponent(ID_SCALAR_VALUE_CONTAINER));
         }
-        return createMarkupComponent(id);
     }
 
     @Override
@@ -63,12 +61,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
         return createMarkupComponent(ID_SCALAR_IF_COMPACT);
     }
 
-    @Override
-    protected final IModel<String> obtainInlinePromptModel() {
-        return super.toStringConvertingModelOf(getConverter(scalarModel()));
-    }
-
     protected final MarkupComponent createMarkupComponent(final String id) {
-        return markupComponentFactory.newMarkupComponent(id, getModel());
+        return markupComponentFactory.newMarkupComponent(id, scalarModel());
     }
 }