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:57:40 UTC
[isis] branch 2877_compound.value.types updated: ISIS-2877: minor
polishing around PromptFormAbstract
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 da8d8f1 ISIS-2877: minor polishing around PromptFormAbstract
da8d8f1 is described below
commit da8d8f153cd739d966b5372d38594e556850a808
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon Oct 25 10:57:31 2021 +0200
ISIS-2877: minor polishing around PromptFormAbstract
---
.../wicket/model/models/ActionPromptProvider.java | 9 ++---
.../wicket/ui/panels/PromptFormAbstract.java | 42 +++++++---------------
.../org/apache/isis/viewer/wicket/ui/util/Wkt.java | 9 +++++
3 files changed, 27 insertions(+), 33 deletions(-)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
index e7b64eb..7da7288 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
@@ -30,18 +30,19 @@ public interface ActionPromptProvider {
public static ActionPromptProvider getFrom(final Component component) {
final Page page = component.getPage();
if(page == null) {
- throw new IllegalArgumentException("Programming error: component must be added to a page in order to locate the ActionPromptProvider");
+ throw new IllegalArgumentException("Programming error: component must be added to a page "
+ + "in order to locate the ActionPromptProvider");
}
return getFrom(page);
}
public static ActionPromptProvider getFrom(final Page page) {
if(page instanceof ActionPromptProvider) {
- final ActionPromptProvider provider = (ActionPromptProvider) page;
- return provider;
+ return (ActionPromptProvider) page;
}
// else
- throw new IllegalArgumentException("Programming error: all pages should inherit from PageAbstract, which serves as the ActionPromptProvider");
+ throw new IllegalArgumentException("Programming error: all pages should inherit from PageAbstract, "
+ + "which serves as the ActionPromptProvider");
}
public ActionPrompt getActionPrompt(
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 5ed8610..e35c68b 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
@@ -19,6 +19,7 @@
package org.apache.isis.viewer.wicket.ui.panels;
import java.util.List;
+import java.util.Optional;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -27,8 +28,6 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
-import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
@@ -90,8 +89,7 @@ implements ScalarModelSubscriber {
@Override
public final void renderHead(final IHeaderResponse response) {
super.renderHead(response);
- response.render(OnDomReadyHeaderItem.forScript(
- String.format("Wicket.Event.publish(Isis.Topic.FOCUS_FIRST_PARAMETER, '%s')", getMarkupId())));
+ Wkt.focusFirstParameter(response, getMarkupId());
}
@Override
@@ -142,7 +140,6 @@ implements ScalarModelSubscriber {
@Override
public final void onCancelSubmitted(final AjaxRequestTarget target) {
setLastFocusHint();
- //closePromptIfAny(target);
completePrompt(target);
}
@@ -166,10 +163,8 @@ implements ScalarModelSubscriber {
private void closePromptIfAny(final AjaxRequestTarget target) {
try {
- final ActionPromptProvider promptProvider = ActionPromptProvider.getFrom(parentPanel);
- if(promptProvider != null) {
- promptProvider.closePrompt(target);
- }
+ ActionPromptProvider.getFrom(parentPanel)
+ .closePrompt(target);
} catch (org.apache.wicket.WicketRuntimeException ex) {
// if "No Page found for component"
// do nothing
@@ -181,7 +176,7 @@ implements ScalarModelSubscriber {
if (entityModel == null) {
return;
}
- MarkupContainer parentContainer = this.parentPanel.getParent();
+ final MarkupContainer parentContainer = this.parentPanel.getParent();
if (parentContainer != null) {
entityModel.setHint(getPage(), PageAbstract.UIHINT_FOCUS, parentContainer.getPageRelativePath());
}
@@ -202,30 +197,19 @@ implements ScalarModelSubscriber {
}
private void rebuildGuiAfterInlinePromptDone(final AjaxRequestTarget target) {
- // replace
- final String id = parentPanel.getId();
- final MarkupContainer parent = parentPanel.getParent();
-
- final WebMarkupContainer replacementPropertyEditFormPanel = new WebMarkupContainer(id);
- replacementPropertyEditFormPanel.setVisible(false);
-
- parent.addOrReplace(replacementPropertyEditFormPanel);
+ // replace parent panel with new invisible instance
+ Wkt.containerAdd(parentPanel.getParent(), parentPanel.getId())
+ .setVisible(false);
// change visibility of inline components
formExecutorContext().getInlinePromptContext().onCancel();
- // redraw
- MarkupContainer scalarTypeContainer = formExecutorContext().getInlinePromptContext()
- .getScalarTypeContainer();
-
- if (scalarTypeContainer != null) {
- String markupId = scalarTypeContainer.getMarkupId();
- target.appendJavaScript(
- String.format("Wicket.Event.publish(Isis.Topic.FOCUS_FIRST_PROPERTY, '%s')",
- markupId));
- }
+ Optional.ofNullable(formExecutorContext().getInlinePromptContext().getScalarTypeContainer())
+ .ifPresent(scalarTypeContainer->
+ Wkt.focusFirstProperty(target, scalarTypeContainer.getMarkupId()));
- target.add(parent);
+ // redraw
+ target.add(parentPanel.getParent());
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
index 4198f8f..5815345 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
@@ -33,6 +33,7 @@ import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptContentHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextArea;
@@ -443,6 +444,14 @@ public class Wkt {
}
+ public void focusFirstProperty(final AjaxRequestTarget target, final String containerId) {
+ target.appendJavaScript(
+ String.format("Wicket.Event.publish(Isis.Topic.FOCUS_FIRST_PROPERTY, '%s')", containerId));
+ }
+ public void focusFirstParameter(final IHeaderResponse response, final String containerId) {
+ response.render(OnDomReadyHeaderItem.forScript(
+ String.format("Wicket.Event.publish(Isis.Topic.FOCUS_FIRST_PARAMETER, '%s')", containerId)));
+ }
}