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/26 06:36:00 UTC

[1/4] isis git commit: ISIS-1603: simplifies the ScalarPanelAbstract hierarchy, removing responsibilities from ScalarPanelTextAbstract (both up and down)

Repository: isis
Updated Branches:
  refs/heads/ISIS-1603-no-xeditable 2007e2cfa -> 3dccc4c17


ISIS-1603: simplifies the ScalarPanelAbstract hierarchy, removing responsibilities from ScalarPanelTextAbstract (both up and down)


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

Branch: refs/heads/ISIS-1603-no-xeditable
Commit: a3b01cc2ea9b1f8ef82a222b265282ab181c9345
Parents: 2007e2c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:32:36 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:32:36 2017 +0100

----------------------------------------------------------------------
 .../components/scalars/ScalarPanelAbstract.java | 45 +++++++++++++
 .../scalars/ScalarPanelTextAbstract.java        | 70 --------------------
 .../scalars/ScalarPanelTextFieldAbstract.java   | 22 +++++-
 3 files changed, 66 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index bb25019..52fb5a8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -49,6 +49,7 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel;
+import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormExecutor;
 import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanel;
 import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanel;
 import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPromptHeaderPanel;
@@ -267,6 +268,50 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
     // ///////////////////////////////////////////////////////////////////
 
     /**
+     * For convenience of subclasses that support inline prompts ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
+     */
+    protected void configureInlinePromptCallback() {
+
+        final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
+        if(promptStyle == PromptStyle.INLINE) {
+
+            if(editInlineLink != null) {
+                editInlineLink.add(new AjaxEventBehavior("click") {
+                    @Override
+                    protected void onEvent(final AjaxRequestTarget target) {
+
+                        scalarModel.toEditMode();
+
+                        // dynamically update the edit form.
+                        final PropertyEditFormExecutor formExecutor =
+                                new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
+                        scalarModel.setFormExecutor(formExecutor);
+                        scalarModel.setInlinePromptContext(
+                                new ScalarModel.InlinePromptContext(
+                                        getComponentForRegular(),
+                                        scalarIfRegularInlinePromptForm));
+
+                        switchFormForInlinePrompt();
+
+                        getComponentForRegular().setVisible(false);
+                        scalarIfRegularInlinePromptForm.setVisible(true);
+
+                        target.add(ScalarPanelAbstract.this);
+                    }
+
+                    @Override
+                    public boolean isEnabled(final Component component) {
+                        return true;
+                    }
+                });
+            }
+        }
+    }
+
+
+    // ///////////////////////////////////////////////////////////////////
+
+    /**
      * Mandatory hook.
      */
     protected abstract void addFormComponentBehavior(Behavior behavior);

http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
index 9245a28..198eb9e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
@@ -19,16 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.panel.Fragment;
-
-import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormExecutor;
-import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
 /**
@@ -43,72 +34,11 @@ public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract  {
 
     private static final long serialVersionUID = 1L;
 
-    public enum CompactType {
-        INPUT_CHECKBOX,
-        SPAN
-    }
-
-
 
     public ScalarPanelTextAbstract(final String id, final ScalarModel scalarModel) {
         super(id, scalarModel);
     }
 
 
-    protected Fragment getCompactFragment(CompactType type) {
-        Fragment compactFragment;
-        switch (type) {
-            case INPUT_CHECKBOX:
-                compactFragment = new Fragment("scalarIfCompact", "compactAsInputCheckbox", ScalarPanelTextAbstract.this);
-                break;
-            case SPAN:
-            default:
-                compactFragment = new Fragment("scalarIfCompact", "compactAsSpan", ScalarPanelTextAbstract.this);
-                break;
-        }
-        return compactFragment;
-    }
-
-
-
-
-    protected void configureInlineEditCallback() {
-
-        final PromptStyle editStyle = this.scalarModel.getPromptStyle();
-        if(editStyle == PromptStyle.INLINE) {
-
-            if(editInlineLink != null) {
-                editInlineLink.add(new AjaxEventBehavior("click") {
-                    @Override
-                    protected void onEvent(final AjaxRequestTarget target) {
-
-                        scalarModel.toEditMode();
-
-                        // dynamically update the edit form.
-                        final PropertyEditFormExecutor formExecutor =
-                                new PropertyEditFormExecutor(ScalarPanelTextAbstract.this, scalarModel);
-                        scalarModel.setFormExecutor(formExecutor);
-                        scalarModel.setInlinePromptContext(
-                                new ScalarModel.InlinePromptContext(
-                                        getComponentForRegular(),
-                                        scalarIfRegularInlinePromptForm));
-
-                        switchFormForInlinePrompt();
-
-                        getComponentForRegular().setVisible(false);
-                        scalarIfRegularInlinePromptForm.setVisible(true);
-
-                        target.add(ScalarPanelTextAbstract.this);
-                    }
-
-                    @Override
-                    public boolean isEnabled(final Component component) {
-                        return true;
-                    }
-                });
-            }
-        }
-    }
-
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/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 adde04e..332e2e8 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
@@ -165,7 +165,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         //
 
         addEditPropertyTo(scalarIfRegularFormGroup);
-        configureInlineEditCallback();
+        configureInlinePromptCallback();
 
         if (scalarModel.canEnterEditMode() && scalarModel.getPromptStyle() == PromptStyle.INLINE) {
             textField.setVisibilityAllowed(false);
@@ -301,6 +301,26 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         return labelIfCompact;
     }
 
+    public enum CompactType {
+        INPUT_CHECKBOX,
+        SPAN
+    }
+
+
+    protected Fragment getCompactFragment(CompactType type) {
+        Fragment compactFragment;
+        switch (type) {
+        case INPUT_CHECKBOX:
+            compactFragment = new Fragment(ID_SCALAR_IF_COMPACT, "compactAsInputCheckbox", ScalarPanelTextFieldAbstract.this);
+            break;
+        case SPAN:
+        default:
+            compactFragment = new Fragment(ID_SCALAR_IF_COMPACT, "compactAsSpan", ScalarPanelTextFieldAbstract.this);
+            break;
+        }
+        return compactFragment;
+    }
+
 
     @Override
     protected void onBeforeRenderWhenViewMode() {


[3/4] isis git commit: ISIS-1603: deletes ScalarPanelTextAbstract, since no longer has any use.

Posted by da...@apache.org.
ISIS-1603: deletes ScalarPanelTextAbstract, since no longer has any use.

Instead, ScalarPanelTextFieldAbstract inherits directly from ScalarPanelAbstract.


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

Branch: refs/heads/ISIS-1603-no-xeditable
Commit: cc056eaed637759069e9a27584e28898a4516af2
Parents: f6641fd
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:40:43 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:40:43 2017 +0100

----------------------------------------------------------------------
 .../components/scalars/ScalarPanelAbstract.java |  4 +--
 .../scalars/ScalarPanelTextAbstract.html        |  0
 .../scalars/ScalarPanelTextAbstract.java        | 35 --------------------
 .../scalars/ScalarPanelTextFieldAbstract.java   |  2 +-
 4 files changed, 3 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 089c1d1..89eb391 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -104,7 +104,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
     private WebMarkupContainer scalarTypeContainer;
 
     /**
-     * Used by most subclasses ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
+     * Used by most subclasses ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
      */
     protected WebMarkupContainer scalarIfRegularInlinePromptForm;
 
@@ -268,7 +268,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
     // ///////////////////////////////////////////////////////////////////
 
     /**
-     * For convenience of subclasses that support inline prompts ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
+     * For convenience of subclasses that support inline prompts ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
      */
     protected void configureInlinePromptCallback() {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
deleted file mode 100644
index 7bfaf33..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.components.scalars;
-
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract  {
-
-    private static final long serialVersionUID = 1L;
-
-
-    public ScalarPanelTextAbstract(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/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 8e28819..3e72251 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
@@ -67,7 +67,7 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
  * This implementation is for panels that use a textfield/text area.
  * </p>
  */
-public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelTextAbstract {
+public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelAbstract {
 
     private static final long serialVersionUID = 1L;
 


[2/4] isis git commit: ISIS-1603: moves the markup from ScalarPanelTextAbstract.html down to its subclass, SclarPanelTextFieldAbstract.html

Posted by da...@apache.org.
ISIS-1603: moves the markup from ScalarPanelTextAbstract.html down to its subclass, SclarPanelTextFieldAbstract.html


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

Branch: refs/heads/ISIS-1603-no-xeditable
Commit: f6641fd037c8161945599b79edbec6c1a8c3b3d1
Parents: a3b01cc
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:39:10 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:39:10 2017 +0100

----------------------------------------------------------------------
 .../components/scalars/ScalarPanelAbstract.java |   2 +-
 .../scalars/ScalarPanelTextAbstract.html        |  87 ---------------
 .../scalars/ScalarPanelTextAbstract.java        |  11 +-
 .../scalars/ScalarPanelTextFieldAbstract.html   | 110 ++++++++++++++-----
 .../scalars/ScalarPanelTextFieldAbstract.java   |  14 ++-
 5 files changed, 99 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 52fb5a8..089c1d1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -296,7 +296,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
                         getComponentForRegular().setVisible(false);
                         scalarIfRegularInlinePromptForm.setVisible(true);
 
-                        target.add(ScalarPanelAbstract.this);
+                        target.add(scalarTypeContainer);
                     }
 
                     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
index 9fd6bda..e69de29 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:wicket="http://wicket.apache.org"
-      xml:lang="en"
-      lang="en">
-    <body>
-        <wicket:panel>
-            <div class="scalarNameAndValueComponentType"
-                 wicket:id="scalarTypeContainer">
-
-                <div class="form-group"
-                     wicket:id="scalarIfRegular">
-
-                    <label class="scalarName control-label"
-                           wicket:id="scalarName"
-                    >[Label text]</label>
-
-                    <span class="scalarValueWrapper">
-                        <div class="scalarPlaceholder">
-
-                            <span class="scalarValueInput">
-                                <span class="editing">
-
-                                    <a href="#"
-                                       name="scalarValueEditInline"
-                                       class="form-control input-sm scalarValueEditInline"
-                                       wicket:id="scalarValueEditInline">
-                                        <span wicket:id="scalarValueEditInlineLabel"></span>
-                                    </a>
-
-                                    <wicket:child/>
-
-                                    <a href="#"
-                                       class="edit fa fa-pencil-square-o"
-                                       wicket:id="editProperty"></a>
-                                </span>
-                            </span>
-
-                            <span class="associatedActionLinksRight"
-                                  wicket:id="associatedActionLinksRight"
-                            >[drop down]</span>
-                        </div>
-                        <span wicket:id="feedback" class="help-block"></span>
-                        <span wicket:id="associatedActionLinksBelow"></span>
-                    </span>
-                    <div class="clearfix"></div>
-                </div>
-
-                <div class="inlineEditForm"
-                     wicket:id="scalarIfRegularInlineEditForm" >
-                    <div><span>property edit form</span></div>
-                </div>
-
-                <wicket:container wicket:id="scalarIfCompact"></wicket:container>
-            </div>
-
-            <wicket:fragment wicket:id="compactAsInputCheckbox">
-                <input wicket:id="scalarIfCompact"
-                       type="checkbox"
-                       class="form-control" />
-            </wicket:fragment>
-
-            <wicket:fragment wicket:id="compactAsSpan">
-                <span wicket:id="scalarIfCompact"></span>
-            </wicket:fragment>
-        </wicket:panel>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
index 198eb9e..7bfaf33 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
@@ -20,16 +20,7 @@
 package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-
-/**
- * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
- * their backing model.
- * 
- * <p>
- * Supports the concept of being {@link Rendering#COMPACT} (eg within a table) or
- * {@link Rendering#REGULAR regular} (eg within a form).
- */
+
 public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract  {
 
     private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
index 673e6e1..31538a6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
@@ -22,36 +22,96 @@
       xmlns:wicket="http://wicket.apache.org"
       xml:lang="en"
       lang="en">
-    <body>
-        <wicket:extend>
-            <wicket:container wicket:id="scalarValueContainer"/>
+<body>
+<wicket:panel>
+    <div class="scalarNameAndValueComponentType"
+         wicket:id="scalarTypeContainer">
 
-            <wicket:fragment wicket:id="text">
-                <input
-                        type="text"
-                        name="scalarValue"
-                        class="form-control input-sm scalarValue"
-                        wicket:id="scalarValue" />
-            </wicket:fragment>
+        <div class="form-group"
+             wicket:id="scalarIfRegular">
+
+            <label class="scalarName control-label"
+                   wicket:id="scalarName"
+            >[Label text]</label>
+
+            <span class="scalarValueWrapper">
+                    <div class="scalarPlaceholder">
+
+                        <span class="scalarValueInput">
+                            <span class="editing">
+
+                                <a href="#"
+                                   name="scalarValueEditInline"
+                                   class="form-control input-sm scalarValueEditInline"
+                                   wicket:id="scalarValueEditInline">
+                                    <span wicket:id="scalarValueEditInlineLabel"></span>
+                                </a>
+
+                                <wicket:container wicket:id="scalarValueContainer"/>
+
+
+
+                                <a href="#"
+                                   class="edit fa fa-pencil-square-o"
+                                   wicket:id="editProperty"></a>
+                            </span>
+                        </span>
 
-            <wicket:fragment wicket:id="textarea">
+                        <span class="associatedActionLinksRight"
+                              wicket:id="associatedActionLinksRight"
+                        >[drop down]</span>
+                    </div>
+                    <span wicket:id="feedback" class="help-block"></span>
+                    <span wicket:id="associatedActionLinksBelow"></span>
+                </span>
+            <div class="clearfix"></div>
+        </div>
+
+        <div class="inlineEditForm"
+             wicket:id="scalarIfRegularInlineEditForm" >
+            <div><span>property edit form</span></div>
+        </div>
+
+        <wicket:container wicket:id="scalarIfCompact"></wicket:container>
+    </div>
+
+    <wicket:fragment wicket:id="text">
+        <input
+                type="text"
+                name="scalarValue"
+                class="form-control input-sm scalarValue"
+                wicket:id="scalarValue" />
+    </wicket:fragment>
+
+    <wicket:fragment wicket:id="textarea">
                 <textarea
                         name="scalarValue"
                         class="form-control scalarValue"
                         wicket:id="scalarValue">
                 </textarea>
-            </wicket:fragment>
-
-            <wicket:fragment wicket:id="date">
-                <div class="date">
-                    <input
-                            type="text"
-                            name="scalarValue"
-                            class="form-control input-sm scalarValue"
-                            wicket:id="scalarValue"/>
-                </div>
-            </wicket:fragment>
-
-        </wicket:extend>
-    </body>
+    </wicket:fragment>
+
+    <wicket:fragment wicket:id="date">
+        <div class="date">
+            <input
+                    type="text"
+                    name="scalarValue"
+                    class="form-control input-sm scalarValue"
+                    wicket:id="scalarValue"/>
+        </div>
+    </wicket:fragment>
+
+    <wicket:fragment wicket:id="compactAsInputCheckbox">
+        <input wicket:id="scalarIfCompact"
+               type="checkbox"
+               class="form-control" />
+    </wicket:fragment>
+
+    <wicket:fragment wicket:id="compactAsSpan">
+        <span wicket:id="scalarIfCompact"></span>
+    </wicket:fragment>
+
+</wicket:panel>
+</body>
 </html>
+

http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/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 332e2e8..8e28819 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
@@ -51,11 +51,21 @@ 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.widgets.bootstrap.FormGroup;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
 /**
- * Adapter for {@link ScalarPanelAbstract scalar panel}s that are implemented
- * using a simple {@link TextField}.
+ * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
+ * their backing model.
+ *
+ * <p>
+ * Supports the concept of being {@link Rendering#COMPACT} (eg within a table) or
+ * {@link Rendering#REGULAR regular} (eg within a form).
+ * </p>
+ *
+ * <p>
+ * This implementation is for panels that use a textfield/text area.
+ * </p>
  */
 public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelTextAbstract {
 


[4/4] isis git commit: ISIS-1603: reference panel and value choices now have the iniine prompt link and inline prompt form, getting there...

Posted by da...@apache.org.
ISIS-1603: reference panel and value choices now have the iniine prompt link and inline prompt form, getting there...

need to:
- fix visiblity for value and reference panel
- fix callbacks for reference panel


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

Branch: refs/heads/ISIS-1603-no-xeditable
Commit: 3dccc4c17ffdf2a79b07e27d9e3f182a8979494e
Parents: cc056ea
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Apr 26 07:35:49 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Apr 26 07:35:49 2017 +0100

----------------------------------------------------------------------
 .../components/scalars/ScalarPanelAbstract.java | 173 ++++++++++++-------
 .../scalars/ScalarPanelTextFieldAbstract.html   |  14 +-
 .../scalars/ScalarPanelTextFieldAbstract.java   |  58 ++-----
 .../components/scalars/TextFieldValueModel.java |   6 -
 .../isisapplib/IsisBlobOrClobPanelAbstract.java |   9 +
 .../scalars/primitive/BooleanPanel.java         |   9 +
 .../scalars/reference/ReferencePanel.html       |  18 +-
 .../scalars/reference/ReferencePanel.java       |  14 +-
 .../valuechoices/ValueChoicesSelect2Panel.html  |  21 +--
 .../valuechoices/ValueChoicesSelect2Panel.java  |  16 +-
 .../wicket/ui/pages/bootstrap-overrides.css     |   4 +-
 11 files changed, 197 insertions(+), 145 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 89eb391..f948384 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -32,7 +32,9 @@ import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
+import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -77,16 +79,15 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
 
     /**
-     * as per {@link #editInlineLink}
+     * as per {@link #inlinePromptLink}
      */
-    protected static final String ID_SCALAR_VALUE_EDIT_INLINE = "scalarValueEditInline";
-    protected static final String ID_SCALAR_VALUE_EDIT_INLINE_LABEL = "scalarValueEditInlineLabel";
+    protected static final String ID_SCALAR_VALUE_INLINE_PROMPT_LINK = "scalarValueInlinePromptLink";
+    protected static final String ID_SCALAR_VALUE_INLINE_PROMPT_LABEL = "scalarValueInlinePromptLabel";
 
     /**
      * as per {@link #scalarIfRegularInlinePromptForm}.
      */
-    protected static final String ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM = "scalarIfRegularInlineEditForm";
-
+    protected static final String ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM = "scalarIfRegularInlinePromptForm";
 
 
     private static final String ID_EDIT_PROPERTY = "editProperty";
@@ -99,16 +100,16 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
     protected final ScalarModel scalarModel;
 
     private Component scalarIfCompact;
-    private Component scalarIfRegular;
+    private MarkupContainer scalarIfRegular;
 
     private WebMarkupContainer scalarTypeContainer;
 
     /**
      * Used by most subclasses ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
      */
-    protected WebMarkupContainer scalarIfRegularInlinePromptForm;
+    private WebMarkupContainer scalarIfRegularInlinePromptForm;
 
-    protected WebMarkupContainer editInlineLink;
+    WebMarkupContainer inlinePromptLink;
 
     public ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
         super(id, scalarModel);
@@ -179,13 +180,21 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
         this.scalarIfCompact = createComponentForCompact();
         this.scalarIfRegular = createComponentForRegular();
-        this.scalarIfRegularInlinePromptForm = createFormForInlinePromptIfRequired();
+        this.scalarIfRegularInlinePromptForm = createInlinePromptFormIfRequired();
 
         scalarTypeContainer.addOrReplace(scalarIfCompact, scalarIfRegular);
         if(scalarIfRegularInlinePromptForm != null) {
             scalarTypeContainer.addOrReplace(scalarIfRegularInlinePromptForm);
         }
 
+        inlinePromptLink = createInlinePromptLinkIfRequired();
+        if(this.inlinePromptLink != null) {
+            scalarIfRegular.add(inlinePromptLink);
+            configureInlinePromptLinkCallback();
+            configureEditVisibility(scalarIfRegular, inlinePromptLink);
+        }
+
+
         getRendering().buildGui(this);
         addCssForMetaModel();
 
@@ -267,49 +276,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
     // ///////////////////////////////////////////////////////////////////
 
-    /**
-     * For convenience of subclasses that support inline prompts ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
-     */
-    protected void configureInlinePromptCallback() {
-
-        final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
-        if(promptStyle == PromptStyle.INLINE) {
-
-            if(editInlineLink != null) {
-                editInlineLink.add(new AjaxEventBehavior("click") {
-                    @Override
-                    protected void onEvent(final AjaxRequestTarget target) {
-
-                        scalarModel.toEditMode();
-
-                        // dynamically update the edit form.
-                        final PropertyEditFormExecutor formExecutor =
-                                new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
-                        scalarModel.setFormExecutor(formExecutor);
-                        scalarModel.setInlinePromptContext(
-                                new ScalarModel.InlinePromptContext(
-                                        getComponentForRegular(),
-                                        scalarIfRegularInlinePromptForm));
-
-                        switchFormForInlinePrompt();
-
-                        getComponentForRegular().setVisible(false);
-                        scalarIfRegularInlinePromptForm.setVisible(true);
-
-                        target.add(scalarTypeContainer);
-                    }
-
-                    @Override
-                    public boolean isEnabled(final Component component) {
-                        return true;
-                    }
-                });
-            }
-        }
-    }
-
-
-    // ///////////////////////////////////////////////////////////////////
 
     /**
      * Mandatory hook.
@@ -376,6 +342,10 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
     // ///////////////////////////////////////////////////////////////////
 
+    protected Component getComponentForRegular() {
+        return scalarIfRegular;
+    }
+
     /**
      * Mandatory hook method to build the component to render the model when in
      * {@link Rendering#REGULAR regular} format.
@@ -396,26 +366,109 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
      */
     protected abstract Component createComponentForCompact();
 
+
     /**
-     * Optional hook method.
+     * Optional hook method to return a container holding an empty form.  This can be switched out using {@link #switchFormForInlinePrompt()}.
      *
      * <p>
+     *     Implementations that don't support inline prompts can override and return <tt>null</tt>.
+     * </p>
+     * <p>
      *     If non-null, is added to {@link #scalarTypeContainer}.
      * </p>
      */
-    protected WebMarkupContainer createFormForInlinePromptIfRequired() {
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+
+        // (placeholder initially, create dynamically when needed - otherwise infinite loop because form references regular)
+
+        WebMarkupContainer scalarIfRegularInlinePromptForm = new WebMarkupContainer(
+                ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM);
+        scalarIfRegularInlinePromptForm.setOutputMarkupId(true);
+        scalarIfRegularInlinePromptForm.setVisible(false);
+
+        return scalarIfRegularInlinePromptForm;
+    }
+
+    private WebMarkupContainer createInlinePromptLinkIfRequired() {
+        final IModel<?> textFieldModel = obtainPromptInlineLinkModelIfAvailable();
+        if(textFieldModel == null) {
+            return null;
+        }
+
+        final WebMarkupContainer inlinePromptLink = new WebMarkupContainer(ID_SCALAR_VALUE_INLINE_PROMPT_LINK);
+        inlinePromptLink.setOutputMarkupId(true);
+
+        final Label editInlineLinkLabel = new Label(ID_SCALAR_VALUE_INLINE_PROMPT_LABEL, textFieldModel);
+        inlinePromptLink.add(editInlineLinkLabel);
+
+        return inlinePromptLink;
+    }
+
+    /**
+     * Optional hook; if returns non null then the model will be used to set up a link representing the
+     * component for inline prompt.
+     */
+    protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
         return null;
     }
 
-    protected void switchFormForInlinePrompt() {
-        scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
-                scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+
+    /**
+     * Optional hook to set the visibility of subfields according to editability.
+     *
+     * <p>
+     * Only implementations that support inline prompts need override.
+     * </p>
+     */
+    protected void configureEditVisibility(
+            final MarkupContainer scalarIfRegularFormGroup,
+            final WebMarkupContainer inlinePromptLink) {
     }
 
-    protected Component getComponentForRegular() {
-        return scalarIfRegular;
+    private void configureInlinePromptLinkCallback() {
+
+        final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
+        if(promptStyle == PromptStyle.INLINE) {
+
+            if(inlinePromptLink != null) {
+                inlinePromptLink.add(new AjaxEventBehavior("click") {
+                    @Override
+                    protected void onEvent(final AjaxRequestTarget target) {
+
+                        scalarModel.toEditMode();
+
+                        // dynamically update the edit form.
+                        final PropertyEditFormExecutor formExecutor =
+                                new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
+                        scalarModel.setFormExecutor(formExecutor);
+                        scalarModel.setInlinePromptContext(
+                                new ScalarModel.InlinePromptContext(
+                                        getComponentForRegular(),
+                                        scalarIfRegularInlinePromptForm));
+
+                        switchFormForInlinePrompt();
+
+                        getComponentForRegular().setVisible(false);
+                        scalarIfRegularInlinePromptForm.setVisible(true);
+
+                        target.add(scalarTypeContainer);
+                    }
+
+                    @Override
+                    public boolean isEnabled(final Component component) {
+                        return true;
+                    }
+                });
+            }
+        }
     }
 
+    private void switchFormForInlinePrompt() {
+        scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
+                scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+    }
+
+
     // ///////////////////////////////////////////////////////////////////
 
     protected void addEditPropertyTo(
@@ -513,8 +566,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
         return false;
     }
 
-    // ///////////////////////////////////////////////////////////////////
-
 
     // ///////////////////////////////////////////////////////////////////
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
index 31538a6..77ce949 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
@@ -41,10 +41,10 @@
                             <span class="editing">
 
                                 <a href="#"
-                                   name="scalarValueEditInline"
-                                   class="form-control input-sm scalarValueEditInline"
-                                   wicket:id="scalarValueEditInline">
-                                    <span wicket:id="scalarValueEditInlineLabel"></span>
+                                   name="scalarValueInlinePromptLink"
+                                   class="form-control input-sm scalarValueInlinePromptLink"
+                                   wicket:id="scalarValueInlinePromptLink">
+                                    <span wicket:id="scalarValueInlinePromptLabel"></span>
                                 </a>
 
                                 <wicket:container wicket:id="scalarValueContainer"/>
@@ -67,9 +67,9 @@
             <div class="clearfix"></div>
         </div>
 
-        <div class="inlineEditForm"
-             wicket:id="scalarIfRegularInlineEditForm" >
-            <div><span>property edit form</span></div>
+        <div class="inlinePromptForm"
+             wicket:id="scalarIfRegularInlinePromptForm" >
+            <div><span>[property edit form]</span></div>
         </div>
 
         <wicket:container wicket:id="scalarIfCompact"></wicket:container>

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 3e72251..c3bdcc6 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
@@ -103,7 +103,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         return createTextField(id);
     }
 
-    protected TextFieldValueModel<T> newTextFieldValueModel() {
+    TextFieldValueModel<T> newTextFieldValueModel() {
         return new TextFieldValueModel<>(this);
     }
 
@@ -123,9 +123,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
 
         addStandardSemantics();
 
-        final IModel<T> textFieldModel = textField.getModel();
-
-
 
 
         //
@@ -153,50 +150,31 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         addEntityActionLinksBelowAndRight(scalarIfRegularFormGroup, entityActions);
 
 
+        return scalarIfRegularFormGroup;
+    }
 
-        //
-        // inline edit
-        //
-
-        this.editInlineLink = new WebMarkupContainer(ID_SCALAR_VALUE_EDIT_INLINE);
-        editInlineLink.setOutputMarkupId(true);
-
-        final Label editInlineLinkLabel = new Label(ID_SCALAR_VALUE_EDIT_INLINE_LABEL, textFieldModel);
-        editInlineLink.add(editInlineLinkLabel);
-
-
-        scalarIfRegularFormGroup.add(editInlineLink);
-
-
-
-
-        //
-        // configure dialog edit vs inline edit
-        //
+    @Override
+    protected void configureEditVisibility(
+            final MarkupContainer scalarIfRegularFormGroup,
+            final WebMarkupContainer inlinePromptLink) {
 
         addEditPropertyTo(scalarIfRegularFormGroup);
-        configureInlinePromptCallback();
 
         if (scalarModel.canEnterEditMode() && scalarModel.getPromptStyle() == PromptStyle.INLINE) {
             textField.setVisibilityAllowed(false);
         } else {
-            editInlineLink.setVisibilityAllowed(false);
+            inlinePromptLink.setVisibilityAllowed(false);
         }
-
-        return scalarIfRegularFormGroup;
     }
 
     @Override
-    protected WebMarkupContainer createFormForInlinePromptIfRequired() {
-
-        // (placeholder initially, create dynamically when needed - otherwise infinite loop because form references regular)
-
-        WebMarkupContainer scalarIfRegularInlinePromptForm = new WebMarkupContainer(ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM);
-        scalarIfRegularInlinePromptForm.setOutputMarkupId(true);
-
-        scalarIfRegularInlinePromptForm.setVisible(false);
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+        return super.createInlinePromptFormIfRequired();
+    }
 
-        return scalarIfRegularInlinePromptForm;
+    @Override
+    protected IModel<T> obtainPromptInlineLinkModelIfAvailable() {
+        return textField.getModel();
     }
 
     private void addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(final Component component) {
@@ -317,7 +295,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
     }
 
 
-    protected Fragment getCompactFragment(CompactType type) {
+    Fragment getCompactFragment(CompactType type) {
         Fragment compactFragment;
         switch (type) {
         case INPUT_CHECKBOX:
@@ -349,7 +327,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         textField.setEnabled(false);
         addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
 
-        editInlineLink.setEnabled(false);
+        inlinePromptLink.setEnabled(false);
 
         setTitleAttribute(disableReason);
     }
@@ -358,14 +336,14 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
     protected void onBeforeRenderWhenEnabled() {
         super.onBeforeRenderWhenEnabled();
         textField.setEnabled(true);
-        editInlineLink.setEnabled(true);
+        inlinePromptLink.setEnabled(true);
         setTitleAttribute("");
     }
 
     private void setTitleAttribute(final String titleAttribute) {
         AttributeModifier title = new AttributeModifier("title", Model.of(titleAttribute));
         textField.add(title);
-        editInlineLink.add(title);
+        inlinePromptLink.add(title);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
index b2a290a..cc71bf7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
@@ -68,11 +68,5 @@ public class TextFieldValueModel<T extends Serializable> extends Model<T> {
         }
     }
 
-    // FIXME: a bit of a hack to just use toString(), probably want to format somehow.
-    public String getObjectAsString() {
-        T object = getObject();
-        return object != null ? object.toString() : null;
-    }
-
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 6994722..becdc3b 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
@@ -123,6 +123,15 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         return scalarIfRegularFormGroup;
     }
 
+    /**
+     * Inline prompts are <i>not</i> supported by this component.
+     */
+    @Override
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+        return null;
+    }
+
+
     private Image asWicketImage(String id) {
         
         final ObjectAdapter adapter = getModel().getObject();

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index a36adc4..63348b1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -25,6 +25,7 @@ import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.Model;
 
@@ -114,6 +115,14 @@ public class BooleanPanel extends ScalarPanelAbstract {
         return createCheckBox(ID_SCALAR_IF_COMPACT);
     }
 
+    /**
+     * Inline prompts are <i>not</i> supported by this component.
+     */
+    @Override
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+        return null;
+    }
+
     private CheckBoxX createCheckBox(final String id) {
         final CheckBoxX checkBox = new CheckBoxX(id, new Model<Boolean>() {
             private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index 44757cf..675ffab 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -44,14 +44,12 @@
                                 <span class="scalarValueInput">
                                     <span class="editing">
 
-                                        <wicket:remove>
                                         <a href="#"
-                                           name="scalarValueEditInline"
-                                           class="form-control input-sm scalarValueEditInline"
-                                           xwicket:id="scalarValueEditInline">
-                                            <span xwicket:id="scalarValueEditInlineLabel"></span>
+                                           name="scalarValueInlinePromptLink"
+                                           class="form-control input-sm scalarValueInlinePromptLink"
+                                           wicket:id="scalarValueInlinePromptLink">
+                                            <span wicket:id="scalarValueInlinePromptLabel"></span>
                                         </a>
-                                        </wicket:remove>
 
                                         <span class="autoCompletePlaceholder">
                                             <span wicket:id="entityLink">link or drop down</span>
@@ -75,12 +73,10 @@
                     <div class="clearfix"></div>
                 </div>
 
-                <wicket:remove>
-                <div class="inlineEditForm"
-                     xwicket:id="scalarIfRegularInlineEditForm" >
-                    <div><span>property edit form</span></div>
+                <div class="inlinePromptForm"
+                     wicket:id="scalarIfRegularInlinePromptForm" >
+                    <div><span>[property edit form]</span></div>
                 </div>
-                </wicket:remove>
 
                 <div class="scalarIfCompact"
                      wicket:id="scalarIfCompact" >

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 5b9fbe8..bc624ce 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
@@ -84,7 +84,6 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
     private static final String KEY_DISABLE_DEPENDENT_CHOICE_AUTO_SELECTION = "isis.viewer.wicket.disableDependentChoiceAutoSelection";
 
     private EntityLinkSelect2Panel entityLink;
-
     Select2 select2;
 
 
@@ -96,8 +95,6 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
     }
 
     // //////////////////////////////////////
-    // addComponentFor{Compact/Regular}
-    // //////////////////////////////////////
 
     // First called as a side-effect of {@link #beforeRender()}
     @Override
@@ -228,6 +225,17 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
         return select2;
     }
 
+    @Override
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+        return super.createInlinePromptFormIfRequired();
+    }
+
+    @Override
+    protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
+        return select2.getModel();
+//        return new TextFieldValueModel<>(this);
+    }
+
     // //////////////////////////////////////
 
     // called from buildGui

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
index 3b61826..4f05345 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
@@ -40,14 +40,12 @@
                             <span class="scalarValueInput">
                                 <span class="editing">
 
-                                    <wicket:remove>
                                     <a href="#"
-                                       name="scalarValueEditInline"
-                                       class="form-control input-sm scalarValueEditInline"
-                                       xwicket:id="scalarValueEditInline">
-                                        <span xwicket:id="scalarValueEditInlineLabel"></span>
+                                       name="scalarValueInlinePromptLink"
+                                       class="form-control input-sm scalarValueInlinePromptLink"
+                                       wicket:id="scalarValueInlinePromptLink">
+                                        <span wicket:id="scalarValueInlinePromptLabel"></span>
                                     </a>
-                                    </wicket:remove>
 
                                     <select class="choices input-sm select2-remote"
                                             style="width: 99.8%;"
@@ -69,13 +67,10 @@
                 </div>
 
 
-                <wicket:remove>
-                    <div class="inlineEditForm"
-                         xwicket:id="scalarIfRegularInlineEditForm" >
-                        <div><span>property edit form</span></div>
-                    </div>
-                </wicket:remove>
-
+                <div class="inlinePromptForm"
+                     wicket:id="scalarIfRegularInlinePromptForm" >
+                    <div><span>[property edit form]</span></div>
+                </div>
 
                 <span class="scalarIfCompact"
                       wicket:id="scalarIfCompact"></span>

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index c00d172..0e7bc20 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -27,6 +27,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
@@ -154,8 +155,19 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
         return new Label(ID_SCALAR_IF_COMPACT, getModel().getObjectAsString());
     }
 
-    
-    protected ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
+    @Override
+    protected WebMarkupContainer createInlinePromptFormIfRequired() {
+        return super.createInlinePromptFormIfRequired();
+    }
+
+    @Override
+    protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
+        return select2.getModel();
+//        return new TextFieldValueModel<>(this);
+    }
+
+
+    private ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
         return new ObjectAdapterMementoProviderForValueChoices(scalarModel, choicesMementos, wicketViewerSettings);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
index 3e0544c..6552b04 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
@@ -871,13 +871,13 @@ tr.headers th form input {
     height: inherit;
 }
 
-.scalarNameAndValueComponentType .inlineEditForm {
+.scalarNameAndValueComponentType .inlinePromptForm {
     border: 2px solid;
     padding: 10px;
     margin-bottom: 20px
 }
 
-.scalarNameAndValueComponentType .inlineEditForm .form-group {
+.scalarNameAndValueComponentType .inlinePromptForm .form-group {
     padding-left: 5px;
     padding-right: 15px;
 }