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:33:19 UTC
[33/35] isis git commit: ISIS-1603: reference panel and value choices
now have the iniine prompt link and inline prompt form, getting there...
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/87841965
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/87841965
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/87841965
Branch: refs/heads/ISIS-1603
Commit: 87841965f03db6c4064639e9ac049671ddec0481
Parents: 0f1bfc4
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: Thu Apr 27 13:26:40 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/87841965/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 30ba801..8fe1a7b 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();
@@ -271,49 +280,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.
@@ -380,6 +346,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.
@@ -400,26 +370,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(
@@ -517,8 +570,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
return false;
}
- // ///////////////////////////////////////////////////////////////////
-
// ///////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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/87841965/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;
}