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/28 09:21:25 UTC
[20/43] isis git commit: ISIS-1603: further simplifications of
subclasses of ScalarPanelAbstract
ISIS-1603: further simplifications of subclasses of ScalarPanelAbstract
making stuff private in superclass, introduces new optional hook to create the inline prompt form.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5f29ed3b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5f29ed3b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5f29ed3b
Branch: refs/heads/master
Commit: 5f29ed3be069b4bb37d61524615877052ce3e52b
Parents: a8f018e
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 21:10:02 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Apr 27 13:26:39 2017 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 58 +++++++++++++++-----
.../scalars/ScalarPanelTextAbstract.java | 14 ++---
.../scalars/ScalarPanelTextFieldAbstract.java | 26 ++++-----
.../ScalarPanelTextFieldDatePickerAbstract.java | 1 -
.../scalars/ScalarPanelTextFieldNumeric.java | 3 +-
.../valuechoices/ValueChoicesSelect2Panel.java | 4 --
6 files changed, 65 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/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 b7f3cc3..f2fff57 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.PropertyEditFormPanel;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanel;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPromptHeaderPanel;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
@@ -81,7 +82,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected static final String ID_SCALAR_VALUE_EDIT_INLINE_LABEL = "scalarValueEditInlineLabel";
/**
- * as per {@link #scalarIfRegularInlineEditForm}.
+ * as per {@link #scalarIfRegularInlinePromptForm}.
*/
protected static final String ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM = "scalarIfRegularInlineEditForm";
@@ -96,15 +97,16 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected final ScalarModel scalarModel;
- protected Component scalarIfCompact;
- protected Component scalarIfRegular;
+ private Component scalarIfCompact;
+ private Component scalarIfRegular;
- protected WebMarkupContainer scalarTypeContainer;
+ private WebMarkupContainer scalarTypeContainer;
/**
* Used by most subclasses ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
*/
- protected WebMarkupContainer scalarIfRegularInlineEditForm;
+ protected WebMarkupContainer scalarIfRegularInlinePromptForm;
+
protected WebMarkupContainer editInlineLink;
public ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
@@ -174,12 +176,14 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
*/
private void buildGui() {
- // REVIEW: this is nasty, both write to the same entityLink field
- // even though only one is used
- scalarIfCompact = createComponentForCompact();
- scalarIfRegular = createComponentForRegular();
+ this.scalarIfCompact = createComponentForCompact();
+ this.scalarIfRegular = createComponentForRegular();
+ this.scalarIfRegularInlinePromptForm = createFormForInlinePromptIfRequired();
scalarTypeContainer.addOrReplace(scalarIfCompact, scalarIfRegular);
+ if(scalarIfRegularInlinePromptForm != null) {
+ scalarTypeContainer.addOrReplace(scalarIfRegularInlinePromptForm);
+ }
getRendering().buildGui(this);
addCssForMetaModel();
@@ -304,7 +308,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
@Override
public void buildGui(final ScalarPanelAbstract panel) {
- panel.getLabelForCompact().setVisible(false);
+ panel.scalarIfCompact.setVisible(false);
}
@Override
@@ -334,19 +338,42 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
/**
* Mandatory hook method to build the component to render the model when in
* {@link Rendering#REGULAR regular} format.
+ *
+ * <p>
+ * Is added to {@link #scalarTypeContainer}.
+ * </p>
*/
protected abstract MarkupContainer createComponentForRegular();
+ /**
+ * Mandatory hook method to build the component to render the model when in
+ * {@link Rendering#COMPACT compact} format.
+ *
+ * <p>
+ * Is added to {@link #scalarTypeContainer}.
+ * </p>
+ */
protected abstract Component createComponentForCompact();
- protected Component getLabelForCompact() {
- return scalarIfCompact;
+ /**
+ * Optional hook method.
+ *
+ * <p>
+ * If non-null, is added to {@link #scalarTypeContainer}.
+ * </p>
+ */
+ protected WebMarkupContainer createFormForInlinePromptIfRequired() {
+ return null;
}
- public Component getComponentForRegular() {
- return scalarIfRegular;
+ protected void switchFormForInlinePrompt() {
+ scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
+ scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
}
+ protected Component getComponentForRegular() {
+ return scalarIfRegular;
+ }
// ///////////////////////////////////////////////////////////////////
@@ -447,6 +474,9 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
// ///////////////////////////////////////////////////////////////////
+
+ // ///////////////////////////////////////////////////////////////////
+
/**
* Repaints this panel of just some of its children
*
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/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 f115c1e..9245a28 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
@@ -89,16 +89,16 @@ public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract {
new PropertyEditFormExecutor(ScalarPanelTextAbstract.this, scalarModel);
scalarModel.setFormExecutor(formExecutor);
scalarModel.setInlinePromptContext(
- new ScalarModel.InlinePromptContext(scalarIfRegular, scalarIfRegularInlineEditForm));
+ new ScalarModel.InlinePromptContext(
+ getComponentForRegular(),
+ scalarIfRegularInlinePromptForm));
- scalarIfRegularInlineEditForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
- scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+ switchFormForInlinePrompt();
+ getComponentForRegular().setVisible(false);
+ scalarIfRegularInlinePromptForm.setVisible(true);
- scalarIfRegular.setVisible(false);
- scalarIfRegularInlineEditForm.setVisible(true);
-
- target.add(scalarTypeContainer);
+ target.add(ScalarPanelTextAbstract.this);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/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 7735e0e..adde04e 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
@@ -159,18 +159,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
- //
- // inline edit form
- // (placeholder initially, create dynamically when needed - otherwise infinite loop because form references regular)
- //
-
- scalarIfRegularInlineEditForm = new WebMarkupContainer(ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM);
- scalarIfRegularInlineEditForm.setOutputMarkupId(true);
- scalarTypeContainer.add(scalarIfRegularInlineEditForm);
-
-
-
-
//
// configure dialog edit vs inline edit
@@ -184,11 +172,23 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
} else {
editInlineLink.setVisibilityAllowed(false);
}
- scalarIfRegularInlineEditForm.setVisible(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);
+
+ return scalarIfRegularInlinePromptForm;
+ }
+
private void addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(final Component component) {
if(!getSettings().isReplaceDisabledTagWithReadonlyTag()) {
return;
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
index 06c8489..404f872 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
@@ -96,7 +96,6 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
compactFragment.add(label);
- scalarTypeContainer.addOrReplace(compactFragment);
return label;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index 17e91bf..d9c35b6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -24,9 +24,9 @@ import java.io.Serializable;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Fragment;
+import org.apache.wicket.util.convert.IConverter;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.wicket.util.convert.IConverter;
/**
* Panel for rendering numeric scalars.
@@ -60,7 +60,6 @@ public abstract class ScalarPanelTextFieldNumeric<T extends Serializable> extend
label.setEnabled(false);
compactFragment.add(label);
- scalarTypeContainer.addOrReplace(compactFragment);
return label;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5f29ed3b/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 d8c559c..c00d172 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,7 +27,6 @@ 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;
@@ -57,9 +56,6 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
private Select2 select2;
private ObjectAdapterMemento pending;
- protected WebMarkupContainer scalarIfRegularInlineEditForm;
- protected WebMarkupContainer editInlineLink;
-
public ValueChoicesSelect2Panel(final String id, final ScalarModel scalarModel) {
super(id, scalarModel);
pending = scalarModel.getObjectAdapterMemento();