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) {