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 2020/07/31 09:37:44 UTC
[isis] branch master updated: ISIS-2340: fx: let action dialogs
actually invoke their pending args
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 16be546 ISIS-2340: fx: let action dialogs actually invoke their pending args
16be546 is described below
commit 16be546dac9615ccef1940f8880e272cd14498eb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jul 31 11:37:26 2020 +0200
ISIS-2340: fx: let action dialogs actually invoke their pending args
---
.../ui/components/markup/MarkupFieldFactory.java | 1 -
.../viewer/javafx/ui/main/UiActionHandler.java | 20 +++++++++++++++-----
.../common/model/binding/UiComponentFactory.java | 3 ++-
3 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
index 206a2f2..0fb2aac 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
@@ -62,7 +62,6 @@ public class MarkupFieldFactory implements UiComponentHandlerFx {
@Override
public Node handle(ComponentRequest request) {
-
val markupHtml = request.getFeatureValue(HasHtml.class)
.map(HasHtml::asHtml)
.orElse("");
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiActionHandler.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiActionHandler.java
index d0b3ca5..ef5df46 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiActionHandler.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiActionHandler.java
@@ -58,7 +58,9 @@ public class UiActionHandler {
final int paramCount = managedAction.getAction().getParameterCount();
- if(paramCount>0) {
+ if(paramCount==0) {
+ invoke(managedAction, Can.empty(), onNewPageContent);
+ } else {
// TODO get an ActionPrompt, then on invocation show the result in the content view
//Dialogs.message("Warn", "ActionPrompt not supported yet!", null);
@@ -99,11 +101,19 @@ public class UiActionHandler {
});
dialog.showAndWait().ifPresent(params->{
- System.out.println("param negotiation result");
+ log.info("param negotiation done");
+ invoke(managedAction, params.getParamValues(), onNewPageContent);
});
- return;
- }
+ }
+
+
+ }
+
+ private void invoke(
+ ManagedAction managedAction,
+ Can<ManagedObject> params,
+ Consumer<Node> onNewPageContent) {
uiContext.getIsisInteractionFactory().runAnonymous(()->{
@@ -115,9 +125,9 @@ public class UiActionHandler {
.ifPresent(actionResult->handleActionResult(actionResult, onNewPageContent));
});
-
}
+
public void handleActionResult(ManagedObject actionResult, Consumer<Node> onNewPageContent) {
onNewPageContent.accept(uiComponentForActionResult(actionResult, onNewPageContent));
}
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
index 44e9cfe..1d58aaf 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
@@ -33,6 +33,7 @@ import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.interactions.managed.ManagedFeature;
import org.apache.isis.core.metamodel.interactions.managed.ManagedParameter;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
+import org.apache.isis.core.metamodel.interactions.managed.ManagedValue;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -136,7 +137,7 @@ public interface UiComponentFactory<B, C> {
val managedProperty = (ManagedProperty)managedFeature;
//TODO do a type check before the cast, so we can throw a more detailed exception
// that is, given type must be assignable from the actual pojo type
- return Optional.ofNullable(managedProperty.getValue().getValue())
+ return Optional.ofNullable(managedProperty.getPropertyValue())
.filter(_Predicates.not(ManagedObjects::isNullOrUnspecifiedOrEmpty))
.map(ManagedObject::getPojo)
.map(type::cast);