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/08/07 06:23:50 UTC

[isis] branch master updated: ISIS-2340: some clean up

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 e6b24d1  ISIS-2340: some clean up
e6b24d1 is described below

commit e6b24d180ed860f844567994e36dd98a67054882
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Aug 7 08:23:35 2020 +0200

    ISIS-2340: some clean up
---
 .../isis/core/metamodel/spec/ManagedObjects.java   |  2 +-
 .../viewer/javafx/model/context/UiContext.java     | 11 +++---
 .../viewer/javafx/ui/main/UiContextDefault.java    | 40 ++++++++++++++++------
 .../viewer/javafx/ui/main/UiController.java        | 12 +------
 4 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index 1f6adf5..1707af7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -297,7 +297,7 @@ public final class ManagedObjects {
         if (_NullSafe.isEmpty(objects)) {
             return Optional.empty();
         }
-        val firstElement = objects.getSingletonOrFail();
+        val firstElement = objects.getFirstOrFail();
         val firstElementSpec = firstElement.getSpecification();
         
         if(objects.getCardinality().isOne()) {
diff --git a/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/context/UiContext.java b/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/context/UiContext.java
index aa1edcb..b3bcfc6 100644
--- a/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/context/UiContext.java
+++ b/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/context/UiContext.java
@@ -20,6 +20,7 @@ package org.apache.isis.incubator.viewer.javafx.model.context;
 
 import java.util.function.Consumer;
 import java.util.function.Function;
+import java.util.function.Supplier;
 
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.runtime.iactn.IsisInteractionFactory;
@@ -41,15 +42,11 @@ public interface UiContext {
     IsisInteractionFactory getIsisInteractionFactory();
     ActionUiModelFactoryFx getActionUiModelFactory();
     
-    void newPage(Node content);
     void setNewPageHandler(Consumer<Node> onNewPage);
-    
-    Node pageFor(ManagedObject object);
     void setPageFactory(Function<ManagedObject, Node> pageFactory);
     
-    default void route(ManagedObject object) {
-        newPage(pageFor(object));    
-    }
+    void route(ManagedObject object);
+    void route(Supplier<ManagedObject> objectSupplier);
     
     // -- DECORATORS
     
@@ -61,6 +58,8 @@ public interface UiContext {
     
     PrototypingDecorator<Button, Node> getPrototypingDecoratorForButton();
     PrototypingDecorator<Node, Node> getPrototypingDecoratorForFormField();
+
+    
     
     
 }
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiContextDefault.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiContextDefault.java
index f55ceae..78410fb 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiContextDefault.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiContextDefault.java
@@ -20,6 +20,7 @@ package org.apache.isis.incubator.viewer.javafx.ui.main;
 
 import java.util.function.Consumer;
 import java.util.function.Function;
+import java.util.function.Supplier;
 
 import javax.inject.Inject;
 
@@ -37,6 +38,8 @@ import org.apache.isis.viewer.common.model.decorator.prototyping.PrototypingDeco
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
+import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 import javafx.scene.Node;
 import javafx.scene.control.Button;
@@ -45,6 +48,7 @@ import javafx.scene.control.MenuItem;
 
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
+@Log4j2
 public class UiContextDefault implements UiContext {
 
     @Getter(onMethod_ = {@Override})
@@ -57,21 +61,21 @@ public class UiContextDefault implements UiContext {
     @Setter(onMethod_ = {@Override})
     private Consumer<Node> newPageHandler;
     
-    @Override
-    public void newPage(Node content) {
-        if(newPageHandler!=null && content!=null) {
-            newPageHandler.accept(content);
-        }
-    }
-    
     @Setter(onMethod_ = {@Override})
     private Function<ManagedObject, Node> pageFactory;
+
+    @Override
+    public void route(ManagedObject object) {
+        log.info("about to render object {}", object);
+        newPage(pageFor(object));
+    }
     
     @Override
-    public Node pageFor(ManagedObject object) {
-        return pageFactory!=null
-                ? pageFactory.apply(object)
-                : null;
+    public void route(Supplier<ManagedObject> objectSupplier) {
+        isisInteractionFactory.runAnonymous(()->{
+            val object = objectSupplier.get();
+            route(object);
+        });
     }
     
     // -- DECORATORS
@@ -91,5 +95,19 @@ public class UiContextDefault implements UiContext {
     @Getter(onMethod_ = {@Override})
     private final PrototypingDecorator<Node, Node> prototypingDecoratorForFormField;
     
+    // -- HELPER
+    
+    private void newPage(Node content) {
+        if(newPageHandler!=null && content!=null) {
+            newPageHandler.accept(content);
+        }
+    }
+    
+    private Node pageFor(ManagedObject object) {
+        return pageFactory!=null
+                ? pageFactory.apply(object)
+                : null;
+    }
+    
     
 }
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiController.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiController.java
index def44d1..76f0a74 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiController.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/UiController.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.incubator.viewer.javafx.ui.main;
 
-import java.util.function.Supplier;
-
 import javax.inject.Inject;
 
 import org.springframework.stereotype.Component;
@@ -89,14 +87,6 @@ public class UiController {
         renderHomepage();
     }
     
-    public void renderObject(Supplier<ManagedObject> objectSupplier) {
-        isisInteractionFactory.runAnonymous(()->{
-            val object = objectSupplier.get();
-            log.info("about to render object {}", object);
-            uiContext.route(object);
-        });
-    }
-    
     private void buildMenu() {
         val header = headerUiModelProvider.getHeader();
         
@@ -129,7 +119,7 @@ public class UiController {
     
     private void renderHomepage() {
         log.info("about to render homepage");
-        renderObject(metaModelContext::getHomePageAdapter);
+        uiContext.route(metaModelContext::getHomePageAdapter);
     }
     
     private Node uiComponentForActionResult(ManagedObject actionResult) {