You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/04/27 12:32:51 UTC

[05/35] isis git commit: ISIS-1603: minor refactoring of subclasses of ScalarPanelTextFieldAbstract, specifically the createTetFieldForRegular.

ISIS-1603: minor refactoring of subclasses of ScalarPanelTextFieldAbstract, specifically the createTetFieldForRegular.

factored out TextFieldStringModel from MultiLineStringPanel, IsisPasswordPanel and ScalarPanelTextFieldParseableAbstract (cf StringPanel)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cf9ad00b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cf9ad00b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cf9ad00b

Branch: refs/heads/ISIS-1603
Commit: cf9ad00bf871f42701286f0e4b055720f5689f0a
Parents: a3a93c2
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Apr 21 14:32:15 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Apr 27 13:25:36 2017 +0100

----------------------------------------------------------------------
 .../scalars/ScalarPanelTextFieldAbstract.java   |  6 ++--
 .../ScalarPanelTextFieldParseableAbstract.java  | 27 +++-----------
 .../scalars/TextFieldStringModel.java           | 21 +++++++++--
 .../isisapplib/IsisBlobOrClobPanelAbstract.java | 37 +++++++++++---------
 .../scalars/isisapplib/IsisColorPanel.java      |  7 +---
 .../scalars/isisapplib/IsisDateTimePanel.java   | 11 +++---
 .../scalars/isisapplib/IsisMoneyPanel.java      |  7 +---
 .../scalars/isisapplib/IsisPasswordPanel.java   | 31 +++++-----------
 .../scalars/isisapplib/IsisPercentagePanel.java |  7 +---
 .../scalars/isisapplib/IsisTimePanel.java       |  7 +---
 .../scalars/isisapplib/IsisTimeStampPanel.java  |  7 +---
 .../scalars/jdkdates/JavaSqlTimePanel.java      |  7 +---
 .../jdkmath/JavaMathBigDecimalPanel.java        | 15 ++++----
 .../jdkmath/JavaMathBigIntegerPanel.java        |  5 +--
 .../scalars/jodatime/JodaDateTimePanel.java     | 11 +++---
 .../jodatime/JodaLocalDateTimePanel.java        | 11 +++---
 .../components/scalars/primitive/BytePanel.java |  5 +--
 .../scalars/primitive/CharacterPanel.java       |  3 +-
 .../scalars/primitive/DoublePanel.java          |  5 +--
 .../scalars/primitive/FloatPanel.java           |  5 +--
 .../scalars/primitive/IntegerPanel.java         | 12 ++++---
 .../components/scalars/primitive/LongPanel.java |  5 +--
 .../scalars/primitive/ShortPanel.java           |  5 +--
 .../scalars/reference/ReferencePanel.java       |  3 --
 .../scalars/string/MultiLineStringPanel.java    | 25 ++++---------
 .../components/scalars/string/StringPanel.java  |  9 ++---
 .../ui/components/scalars/value/ValuePanel.java |  7 +---
 27 files changed, 122 insertions(+), 179 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index e3dbe06..bb22641 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -97,8 +97,8 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         return textField;
     }
 
-    protected AbstractTextComponent<T> createTextFieldForRegular() {
-        return createTextField(ID_SCALAR_VALUE);
+    protected AbstractTextComponent<T> createTextFieldForRegular(final String id) {
+        return createTextField(id);
     }
 
     protected TextField<T> createTextField(final String id) {
@@ -111,7 +111,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
 
     @Override
     protected MarkupContainer addComponentForRegular() {
-        textField = createTextFieldForRegular();
+        textField = createTextFieldForRegular(ID_SCALAR_VALUE);
         textField.setOutputMarkupId(true);
 
         addStandardSemantics();

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
index 703a3f8..314b778 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.Model;
 import org.apache.wicket.validation.validator.StringValidator;
 
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
@@ -36,33 +35,15 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 public abstract class ScalarPanelTextFieldParseableAbstract extends ScalarPanelTextFieldAbstract<String> {
 
     private static final long serialVersionUID = 1L;
-    protected final String idTextField;
 
-    public ScalarPanelTextFieldParseableAbstract(final String id, final String idTextField, final ScalarModel scalarModel) {
+    public ScalarPanelTextFieldParseableAbstract(final String id, final ScalarModel scalarModel) {
         super(id, scalarModel, String.class);
-        this.idTextField = idTextField;
     }
 
     @Override
-    protected AbstractTextComponent<String> createTextFieldForRegular() {
-        final AbstractTextComponent<String> textField = new TextField<>(idTextField, new Model<String>() {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            public String getObject() {
-                return getModel().getObjectAsString();
-            }
-
-            @Override
-            public void setObject(final String object) {
-                if (object == null) {
-                    getModel().setObject(null);
-                } else {
-                    getModel().setObjectAsString(object);
-                }
-            }
-        });
-        return textField;
+    protected AbstractTextComponent<String> createTextFieldForRegular(final String id) {
+        final TextFieldStringModel model = new TextFieldStringModel(this);
+        return new TextField<>(id, model);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldStringModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldStringModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldStringModel.java
index 051969f..9c42f32 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldStringModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldStringModel.java
@@ -1,11 +1,26 @@
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
-public class TextFieldStringModel extends TextFieldValueModel<String> {
+import org.apache.wicket.model.Model;
 
+public class TextFieldStringModel extends Model<String> {
     private static final long serialVersionUID = 1L;
+    private final TextFieldValueModel.ScalarModelProvider scalarModelProvider;
 
-    public TextFieldStringModel(final TextFieldValueModel.ScalarModelProvider parent) {
-        super(parent);
+    public TextFieldStringModel(final TextFieldValueModel.ScalarModelProvider scalarModelProvider) {
+        this.scalarModelProvider = scalarModelProvider;
     }
 
+    @Override
+    public String getObject() {
+        return scalarModelProvider.getModel().getObjectAsString();
+    }
+
+    @Override
+    public void setObject(final String object) {
+        if (object == null) {
+            scalarModelProvider.getModel().setObject(null);
+        } else {
+            scalarModelProvider.getModel().setObjectAsString(object);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index fc4cd38..4090730 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -18,17 +18,14 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
 
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
-import org.apache.isis.applib.value.Blob;
-import org.apache.isis.applib.value.NamedWithMimeType;
-import org.apache.isis.core.commons.lang.CloseableExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.EntityActionUtil;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
-import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
-import org.apache.isis.viewer.wicket.ui.util.Components;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.List;
+
+import javax.activation.MimeType;
+import javax.imageio.ImageIO;
+
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -50,12 +47,18 @@ import org.apache.wicket.request.resource.IResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.activation.MimeType;
-import javax.imageio.ImageIO;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.List;
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.applib.value.NamedWithMimeType;
+import org.apache.isis.core.commons.lang.CloseableExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
+import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.EntityActionUtil;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
+import org.apache.isis.viewer.wicket.ui.util.Components;
+
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
 
 public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> extends ScalarPanelAbstract {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisColorPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisColorPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisColorPanel.java
index 382b521..3e13257 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisColorPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisColorPanel.java
@@ -30,10 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisColorPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisColorPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -41,9 +40,5 @@ public class IsisColorPanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("isisColorPanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
index db5d6b8..5eec2d4 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
@@ -19,14 +19,15 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
 
-import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
-import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+
 import org.apache.isis.applib.value.DateTime;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
 import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
 
 /**
  * Panel for rendering scalars of type {@link DateTime Isis' applib.DateTime}.
@@ -40,9 +41,9 @@ public class IsisDateTimePanel extends ScalarPanelTextFieldDatePickerAbstract<or
         init(new DateConverterForApplibDateTime(getSettings(), getAdjustBy()));
     }
 
-    @Override
-    protected TextField<org.apache.isis.applib.value.DateTime> createTextField(final String id) {
-        return new TextFieldWithDateTimePicker<>(id, new TextFieldValueModel<org.apache.isis.applib.value.DateTime>(this), cls, converter);
+    protected AbstractTextComponent<DateTime> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<DateTime> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextFieldWithDateTimePicker<>(id, textFieldValueModel, cls, converter);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisMoneyPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisMoneyPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisMoneyPanel.java
index 7f677a7..d1eeb31 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisMoneyPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisMoneyPanel.java
@@ -31,10 +31,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisMoneyPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisMoneyPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -42,9 +41,5 @@ public class IsisMoneyPanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("isisMoneyPanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
index a9b5cda..3e549cd 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
@@ -19,16 +19,18 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
 
-import de.agilecoders.wicket.core.util.Attributes;
-
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+
 import org.apache.isis.applib.value.Password;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldStringModel;
+
+import de.agilecoders.wicket.core.util.Attributes;
 
 /**
  * Panel for rendering scalars of type {@link Password Isis' applib.Password}.
@@ -36,10 +38,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisPasswordPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -48,24 +49,9 @@ public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
     }
 
     @Override
-    protected AbstractTextComponent<String> createTextFieldForRegular() {
-        final PasswordTextField passwordField = new PasswordTextField(idTextField, new Model<String>() {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            public String getObject() {
-                return getModel().getObjectAsString();
-            }
-
-            @Override
-            public void setObject(final String object) {
-                if (object == null) {
-                    getModel().setObject(null);
-                } else {
-                    getModel().setObjectAsString(object);
-                }
-            }
-        }) {
+    protected AbstractTextComponent<String> createTextFieldForRegular(String id) {
+        final TextFieldStringModel textModel = new TextFieldStringModel(this);
+        final PasswordTextField passwordField = new PasswordTextField(id, textModel) {
             @Override
             protected void onComponentTag(ComponentTag tag) {
                 Attributes.set(tag, "type", "password");
@@ -82,4 +68,5 @@ public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
     protected IModel<String> getScalarPanelType() {
         return Model.of("isisPasswordPanel");
     }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPercentagePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPercentagePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPercentagePanel.java
index c514400..88ef7f2 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPercentagePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPercentagePanel.java
@@ -32,10 +32,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisPercentagePanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisPercentagePanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -43,9 +42,5 @@ public class IsisPercentagePanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("isisPercentagePanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanel.java
index b021346..ce86fdf 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanel.java
@@ -30,10 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisTimePanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisTimePanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -41,9 +40,5 @@ public class IsisTimePanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("isisTimePanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
index c52547c..384cc03 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
@@ -31,10 +31,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class IsisTimeStampPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public IsisTimeStampPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -42,9 +41,5 @@ public class IsisTimeStampPanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("isisTimeStampPanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlTimePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlTimePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlTimePanel.java
index 294d3cd..6dcaa70 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlTimePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlTimePanel.java
@@ -32,10 +32,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class JavaSqlTimePanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public JavaSqlTimePanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -43,9 +42,5 @@ public class JavaSqlTimePanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("javaSqlTimePanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigDecimalPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigDecimalPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigDecimalPanel.java
index eeaf703..a6bc29b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigDecimalPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigDecimalPanel.java
@@ -21,12 +21,14 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.jdkmath;
 
 import java.math.BigDecimal;
 
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldNumeric;
-import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
+import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldNumeric;
+import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+
 /**
  * Panel for rendering scalars of type {@link BigDecimal}.
  */
@@ -40,10 +42,11 @@ public class JavaMathBigDecimalPanel extends ScalarPanelTextFieldNumeric<BigDeci
         super(id, scalarModel, BigDecimal.class, converter.forViewMode());
         this.converter = converter;
     }
- 
-    protected TextField<BigDecimal> createTextField(final String id) {
+
+    protected AbstractTextComponent<BigDecimal> createTextFieldForRegular(final String id) {
         final ScalarModel model = getModel();
-        return new BigDecimalTextField(id, newTextFieldValueModel(), cls, model, converter);
+        final TextFieldValueModel<BigDecimal> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new BigDecimalTextField(id, textFieldValueModel, cls, model, converter);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
index f8e948f..f992a64 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
@@ -45,8 +45,9 @@ public class JavaMathBigIntegerPanel extends ScalarPanelTextFieldNumeric<BigInte
     }
 
     @Override
-    protected AbstractTextComponent<BigInteger> createTextFieldForRegular() {
-        return new TextField<BigInteger>(ID_SCALAR_VALUE, new TextFieldValueModel<BigInteger>(this), BigInteger.class) {
+    protected AbstractTextComponent<BigInteger> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<BigInteger> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<BigInteger>(id, textFieldValueModel, BigInteger.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
index 87bbb67..54834a3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
@@ -19,15 +19,16 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
 
-import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
-import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.joda.time.DateTime;
 import org.joda.time.LocalDateTime;
+
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
 import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
 
 /**
  * Panel for rendering scalars of type {@link LocalDateTime}.
@@ -41,9 +42,9 @@ public class JodaDateTimePanel extends ScalarPanelTextFieldDatePickerAbstract<Da
         init(new DateConverterForJodaDateTime(getSettings(), getAdjustBy()));
     }
 
-    @Override
-    protected TextField<DateTime> createTextField(final String id) {
-        return new TextFieldWithDateTimePicker<>(id, new TextFieldValueModel<DateTime>(this), cls, converter);
+    protected AbstractTextComponent<DateTime> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<DateTime> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextFieldWithDateTimePicker<>(id, textFieldValueModel, cls, converter);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
index fe3f8fc..2435625 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
@@ -19,14 +19,15 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
 
-import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
-import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.joda.time.LocalDateTime;
+
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
 import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
 
 /**
  * Panel for rendering scalars of type {@link LocalDateTime}.
@@ -41,9 +42,9 @@ public class JodaLocalDateTimePanel extends ScalarPanelTextFieldDatePickerAbstra
     }
 
     // TODO mgrigorov: Check whether this is really needed after fixing ISIS-1015
-    @Override
-    protected TextField<LocalDateTime> createTextField(final String id) {
-        return new TextFieldWithDateTimePicker<>(id, new TextFieldValueModel<LocalDateTime>(this), cls, converter);
+    protected AbstractTextComponent<LocalDateTime> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<LocalDateTime> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextFieldWithDateTimePicker<>(id, textFieldValueModel, cls, converter);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BytePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BytePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BytePanel.java
index fb4d87b..e64f763 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BytePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BytePanel.java
@@ -42,8 +42,9 @@ public class BytePanel extends ScalarPanelTextFieldNumeric<Byte> {
     }
 
     @Override
-    protected AbstractTextComponent<Byte> createTextFieldForRegular() {
-        return new TextField<Byte>(ID_SCALAR_VALUE, new TextFieldValueModel<Byte>(this), Byte.class) {
+    protected AbstractTextComponent<Byte> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Byte> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Byte>(id, textFieldValueModel, Byte.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/CharacterPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/CharacterPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/CharacterPanel.java
index cffc3cd..d44bd1b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/CharacterPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/CharacterPanel.java
@@ -30,10 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class CharacterPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public CharacterPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/DoublePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/DoublePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/DoublePanel.java
index 233ba7b..6c038e5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/DoublePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/DoublePanel.java
@@ -42,8 +42,9 @@ public class DoublePanel extends ScalarPanelTextFieldNumeric<Double> {
     }
     
     @Override
-    protected AbstractTextComponent<Double> createTextFieldForRegular() {
-        return new TextField<Double>(ID_SCALAR_VALUE, new TextFieldValueModel<Double>(this), Double.class) {
+    protected AbstractTextComponent<Double> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Double> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Double>(id, textFieldValueModel, Double.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/FloatPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/FloatPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/FloatPanel.java
index a8ecd34..0e590ef 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/FloatPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/FloatPanel.java
@@ -42,8 +42,9 @@ public class FloatPanel extends ScalarPanelTextFieldNumeric<Float> {
     }
 
     @Override
-    protected AbstractTextComponent<Float> createTextFieldForRegular() {
-        return new TextField<Float>(ID_SCALAR_VALUE, new TextFieldValueModel<Float>(this), Float.class) {
+    protected AbstractTextComponent<Float> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Float> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Float>(id, textFieldValueModel, Float.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/IntegerPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/IntegerPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/IntegerPanel.java
index 8fc3ed0..aefd822 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/IntegerPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/IntegerPanel.java
@@ -19,9 +19,6 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.primitive;
 
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldNumeric;
-import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.IModel;
@@ -29,6 +26,10 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.convert.converter.IntegerConverter;
 
+import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldNumeric;
+import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+
 /**
  * Panel for rendering scalars of type {@link Integer} or <tt>int</tt>.
  */
@@ -41,8 +42,9 @@ public class IntegerPanel extends ScalarPanelTextFieldNumeric<Integer> {
     }
 
     @Override
-    protected AbstractTextComponent<Integer> createTextFieldForRegular() {
-        return new TextField<Integer>(ID_SCALAR_VALUE, new TextFieldValueModel<Integer>(this), Integer.class) {
+    protected AbstractTextComponent<Integer> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Integer> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Integer>(id, textFieldValueModel, Integer.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/LongPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/LongPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/LongPanel.java
index ac1c916..0282240 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/LongPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/LongPanel.java
@@ -42,8 +42,9 @@ public class LongPanel extends ScalarPanelTextFieldNumeric<Long> {
     }
 
     @Override
-    protected AbstractTextComponent<Long> createTextFieldForRegular() {
-        return new TextField<Long>(ID_SCALAR_VALUE, new TextFieldValueModel<Long>(this), Long.class) {
+    protected AbstractTextComponent<Long> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Long> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Long>(id, textFieldValueModel, Long.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/ShortPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/ShortPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/ShortPanel.java
index 4dbb399..9f5ec09 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/ShortPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/ShortPanel.java
@@ -42,8 +42,9 @@ public class ShortPanel extends ScalarPanelTextFieldNumeric<Short> {
     }
 
     @Override
-    protected AbstractTextComponent<Short> createTextFieldForRegular() {
-        return new TextField<Short>(ID_SCALAR_VALUE, new TextFieldValueModel<Short>(this), Short.class) {
+    protected AbstractTextComponent<Short> createTextFieldForRegular(final String id) {
+        final TextFieldValueModel<Short> textFieldValueModel = new TextFieldValueModel<>(this);
+        return new TextField<Short>(id, textFieldValueModel, Short.class) {
             private static final long serialVersionUID = 1L;
 
             @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index a0f6f75..fc4326e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -25,7 +25,6 @@ import java.util.List;
 import com.google.common.collect.Lists;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Settings;
 
 import org.apache.wicket.AttributeModifier;
@@ -39,8 +38,6 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.validation.IValidatable;
 import org.apache.wicket.validation.IValidator;
 import org.apache.wicket.validation.ValidationError;
-import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Settings;
 
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index 0bf8198..772eea8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -32,6 +32,7 @@ import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldStringModel;
 
 /**
  * Panel for rendering MultiLine scalars of type String
@@ -41,28 +42,13 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
     private static final long serialVersionUID = 1L;
     
     public MultiLineStringPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
-    protected AbstractTextComponent<String> createTextFieldForRegular() {
-        final TextArea<String> textField = new TextArea<String>(idTextField, new Model<String>() {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            public String getObject() {
-                return getModel().getObjectAsString();
-            }
-
-            @Override
-            public void setObject(final String object) {
-                if (object == null) {
-                    getModel().setObject(null);
-                } else {
-                    getModel().setObjectAsString(object);
-                }
-            }
-        });
+    protected AbstractTextComponent<String> createTextFieldForRegular(final String id) {
+        TextFieldStringModel model = new TextFieldStringModel(this);
+        final TextArea<String> textField = new TextArea<String>(id, model);
 
         final MultiLineFacet multiLineFacet = getModel().getFacet(MultiLineFacet.class);
         setAttribute(textField, "rows", multiLineFacet.numberOfLines());
@@ -78,6 +64,7 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
         return textField;
     }
 
+
     @Override
     protected Fragment createTextFieldFragment(String id) {
         return new Fragment(id, "textarea", MultiLineStringPanel.this);

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java
index b832a17..5991877 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java
@@ -30,11 +30,10 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class StringPanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     
     public StringPanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
     @Override
@@ -42,10 +41,6 @@ public class StringPanel extends ScalarPanelTextFieldParseableAbstract {
         return Model.of("stringPanel");
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
-    
+
     
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf9ad00b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java
index fd3641a..667e20f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java
@@ -37,16 +37,11 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP
 public class ValuePanel extends ScalarPanelTextFieldParseableAbstract {
 
     private static final long serialVersionUID = 1L;
-    private static final String ID_SCALAR_VALUE = "scalarValue";
 
     public ValuePanel(final String id, final ScalarModel scalarModel) {
-        super(id, ID_SCALAR_VALUE, scalarModel);
+        super(id, scalarModel);
     }
 
-    @Override
-    protected void addSemantics() {
-        super.addSemantics();
-    }
 
     @Override
     protected IModel<String> getScalarPanelType() {