You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/10/25 08:30:54 UTC
[isis] branch 2877_compound.value.types updated: ISIS-2877: fixes
for prev. commit
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 2877_compound.value.types
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/2877_compound.value.types by this push:
new 9ba712a ISIS-2877: fixes for prev. commit
9ba712a is described below
commit 9ba712af8aba83d313a7211704564404152b618e
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon Oct 25 10:30:46 2021 +0200
ISIS-2877: fixes for prev. commit
---
.../components/actions/ActionParametersForm.java | 2 +-
.../isis/viewer/wicket/ui/panels/OkCancelForm.java | 35 +++++------
.../wicket/ui/panels/PromptFormAbstract.java | 70 +++++++++++-----------
3 files changed, 50 insertions(+), 57 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
index 8a29783..1d948f9 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -122,7 +122,7 @@ extends PromptFormAbstract<ActionModel> {
}
@Override
- protected void doConfigureOkButton(final AjaxButton okButton) {
+ protected void configureOkButton(final AjaxButton okButton) {
applyAreYouSure(okButton);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/OkCancelForm.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/OkCancelForm.java
index 50d1e00..70414ee 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/OkCancelForm.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/OkCancelForm.java
@@ -27,17 +27,20 @@ import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
-import lombok.val;
-
+/**
+ * Form with <i>Feedback</i> panel and <i>Ok/Cancel</i> buttons.
+ */
public abstract class OkCancelForm<T extends IModel<ManagedObject>>
extends FormAbstract<ManagedObject>{
private static final long serialVersionUID = 1L;
private static final String ID_OK_BUTTON = "okButton";
public static final String ID_CANCEL_BUTTON = "cancelButton";
+ private static final String ID_FEEDBACK = "feedback";
protected final WicketViewerSettings settings;
protected final AjaxButton okButton;
@@ -46,35 +49,27 @@ extends FormAbstract<ManagedObject>{
protected OkCancelForm(final String id, final WicketViewerSettings settings, final IModel<ManagedObject> model) {
super(id, model);
this.settings = settings;
- okButton = addOkButton();
- cancelButton = addCancelButton();
- doConfigureOkButton(okButton);
- doConfigureCancelButton(cancelButton);
+ okButton = Wkt.buttonAddOk(this, ID_OK_BUTTON, new ResourceModel("okLabel"), settings, this::onOkSubmitted);
+ cancelButton = Wkt.buttonAdd(this, ID_CANCEL_BUTTON, new ResourceModel("cancelLabel"), (button, target)->{
+ onCancelSubmitted(target);
+ });
+ configureOkButton(okButton);
+ configureCancelButton(cancelButton);
+ setDefaultButton(okButton);
+ Wkt.add(this, new FormFeedbackPanel(ID_FEEDBACK));
setOutputMarkupId(true);
}
- protected void doConfigureOkButton(final AjaxButton okButton) {};
- protected abstract void doConfigureCancelButton(AjaxButton cancelButton);
protected abstract void onOkSubmitted(AjaxButton okButton, AjaxRequestTarget target);
protected abstract void onCancelSubmitted(AjaxRequestTarget target);
- protected abstract void closePromptIfAny(AjaxRequestTarget target);
- protected AjaxButton addOkButton() {
- val okButton = Wkt.buttonAddOk(this, ID_OK_BUTTON, new ResourceModel("okLabel"), settings, this::onOkSubmitted);
+ protected void configureOkButton(final AjaxButton okButton) {
okButton.add(new JGrowlBehaviour(super.getCommonContext()));
- setDefaultButton(okButton);
- return okButton;
}
- protected AjaxButton addCancelButton() {
- val cancelButton = Wkt.buttonAdd(this, ID_CANCEL_BUTTON, new ResourceModel("cancelLabel"), (button, target)->{
- //form.setMultiPart(true);
- closePromptIfAny(target);
- onCancelSubmitted(target);
- });
+ protected void configureCancelButton(final AjaxButton cancelButton) {
// so can submit with invalid content (eg mandatory params missing)
cancelButton.setDefaultFormProcessing(false);
- return cancelButton;
}
// workaround for https://issues.apache.org/jira/browse/WICKET-6364
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
index 749d942..5ed8610 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
@@ -41,12 +41,10 @@ import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
-import org.apache.isis.viewer.wicket.model.models.FormExecutor;
import org.apache.isis.viewer.wicket.model.models.FormExecutorContext;
import org.apache.isis.viewer.wicket.model.models.ScalarPropertyModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarModelSubscriber;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
-import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.util.Components;
@@ -62,12 +60,9 @@ implements ScalarModelSubscriber {
private static final long serialVersionUID = 1L;
- private static final String ID_FEEDBACK = "feedback";
-
protected final List<ScalarPanelAbstract> paramPanels = _Lists.newArrayList();
private final Component parentPanel;
- private final T formExecutorContext;
protected PromptFormAbstract(
final String id,
@@ -77,11 +72,13 @@ implements ScalarModelSubscriber {
super(id, settings, model);
this.parentPanel = parentPanel;
- this.formExecutorContext = model;
addParameters();
+ }
- Wkt.add(this, new FormFeedbackPanel(ID_FEEDBACK));
+ @SuppressWarnings("unchecked")
+ private FormExecutorContext formExecutorContext() {
+ return (T)getModel();
}
// -- SETUP
@@ -98,8 +95,9 @@ implements ScalarModelSubscriber {
}
@Override
- protected final void doConfigureCancelButton(final AjaxButton cancelButton) {
- if (formExecutorContext.getPromptStyle().isInlineOrInlineAsIfEdit()) {
+ protected final void configureCancelButton(final AjaxButton cancelButton) {
+ super.configureCancelButton(cancelButton);
+ if (formExecutorContext().getPromptStyle().isInlineOrInlineAsIfEdit()) {
Wkt.behaviorAddFireOnEscapeKey(cancelButton, this::onCancelSubmitted);
}
}
@@ -118,11 +116,10 @@ implements ScalarModelSubscriber {
setLastFocusHint();
val form = okButton.getForm();
-
- final FormExecutor formExecutor = FormExecutorDefault.forMember(getMemberModel());
+ val formExecutor = FormExecutorDefault.forMember(getMemberModel());
val outcome = formExecutor
- .executeAndProcessResults(target.getPage(), target, form, formExecutorContext);
+ .executeAndProcessResults(target.getPage(), target, form, formExecutorContext());
if (outcome.isSuccessWithRedirect()) {
completePrompt(target);
@@ -132,6 +129,7 @@ implements ScalarModelSubscriber {
return;
}
+ //FIXME[ISIS-2877] what to do here exactly?
if (outcome.isSuccessWithinNestedContext()) {
completePrompt(target);
@@ -142,16 +140,10 @@ implements ScalarModelSubscriber {
}
@Override
- protected final void closePromptIfAny(final AjaxRequestTarget target) {
- try {
- final ActionPromptProvider promptProvider = ActionPromptProvider.getFrom(parentPanel);
- if(promptProvider != null) {
- promptProvider.closePrompt(target);
- }
- } catch (org.apache.wicket.WicketRuntimeException ex) {
- // if "No Page found for component"
- // do nothing
- }
+ public final void onCancelSubmitted(final AjaxRequestTarget target) {
+ setLastFocusHint();
+ //closePromptIfAny(target);
+ completePrompt(target);
}
@Override
@@ -162,34 +154,40 @@ implements ScalarModelSubscriber {
}
}
- @Override
- public final void onCancelSubmitted(final AjaxRequestTarget target) {
- setLastFocusHint();
- completePrompt(target);
- }
-
// -- HELPER
private void completePrompt(final AjaxRequestTarget target) {
- if (formExecutorContext.isWithinInlinePrompt()) {
+ if (formExecutorContext().isWithinInlinePrompt()) {
rebuildGuiAfterInlinePromptDone(target);
} else {
closePromptIfAny(target);
}
}
+ private void closePromptIfAny(final AjaxRequestTarget target) {
+ try {
+ final ActionPromptProvider promptProvider = ActionPromptProvider.getFrom(parentPanel);
+ if(promptProvider != null) {
+ promptProvider.closePrompt(target);
+ }
+ } catch (org.apache.wicket.WicketRuntimeException ex) {
+ // if "No Page found for component"
+ // do nothing
+ }
+ }
+
private void setLastFocusHint() {
- final UiHintContainer entityModel = getPageUiHintContainerIfAny();
+ final UiHintContainer entityModel = pageUiHintContainerIfAny();
if (entityModel == null) {
return;
}
- MarkupContainer parent = this.parentPanel.getParent();
- if (parent != null) {
- entityModel.setHint(getPage(), PageAbstract.UIHINT_FOCUS, parent.getPageRelativePath());
+ MarkupContainer parentContainer = this.parentPanel.getParent();
+ if (parentContainer != null) {
+ entityModel.setHint(getPage(), PageAbstract.UIHINT_FOCUS, parentContainer.getPageRelativePath());
}
}
- private UiHintContainer getPageUiHintContainerIfAny() {
+ private UiHintContainer pageUiHintContainerIfAny() {
final Page page;
try {
page = getPage();
@@ -214,10 +212,10 @@ implements ScalarModelSubscriber {
parent.addOrReplace(replacementPropertyEditFormPanel);
// change visibility of inline components
- formExecutorContext.getInlinePromptContext().onCancel();
+ formExecutorContext().getInlinePromptContext().onCancel();
// redraw
- MarkupContainer scalarTypeContainer = formExecutorContext.getInlinePromptContext()
+ MarkupContainer scalarTypeContainer = formExecutorContext().getInlinePromptContext()
.getScalarTypeContainer();
if (scalarTypeContainer != null) {