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 2022/08/26 08:05:08 UTC
[isis] branch master updated: ISIS-3182: splits Viewer Commons Model into Applib/Model/Services
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 c6ec33e977 ISIS-3182: splits Viewer Commons Model into Applib/Model/Services
c6ec33e977 is described below
commit c6ec33e97732d9285d9387c00acc65cf9906bff7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Aug 26 10:05:01 2022 +0200
ISIS-3182: splits Viewer Commons Model into Applib/Model/Services
---
core/pom.xml | 15 ++++++
.../main/java/demoapp/dom/DemoModuleCommon.java | 2 +
.../javafx/ui/IsisModuleIncViewerJavaFxUi.java | 6 +--
.../viewer/javafx/ui/main/MainViewFx.java | 13 ++---
.../viewer/javafx/ui/main/MenuBuilderFx.java | 4 +-
.../viewer/vaadin/model/decorator/Decorators.java | 4 +-
incubator/viewers/vaadin/ui/pom.xml | 6 ++-
.../vaadin/ui/IsisModuleIncViewerVaadinUi.java | 4 +-
.../viewer/vaadin/ui/pages/main/MainViewVaa.java | 10 ++--
.../ui/pages/main/MainView_createHeader.java | 13 +++--
.../vaadin/ui/pages/main/MenuBuilderVaa.java | 4 +-
viewers/commons/{model => applib}/pom.xml | 26 +++------
.../applib/IsisModuleViewerCommonsApplib.java} | 17 +++---
.../IsisModuleViewerCommonsApplibMixins.java} | 14 +----
.../commons/applib/mixins/Object_impersonate.java | 0
.../applib/mixins/Object_impersonateWithRoles.java | 0
.../applib/services}/branding/BrandingUiModel.java | 2 +-
.../services/branding/BrandingUiService.java} | 17 +++---
.../applib/services}/header/HeaderUiModel.java | 6 +--
.../applib/services/header/HeaderUiService.java} | 16 +++---
.../commons/applib/services}/menu/MenuItemDto.java | 2 +-
.../commons/applib/services}/menu/MenuUiModel.java | 22 ++++----
.../applib/services/menu/MenuUiService.java} | 17 +++---
.../commons/applib/services}/menu/MenuVisitor.java | 2 +-
.../services/userprof/UserProfileUiModel.java | 0
.../services/userprof/UserProfileUiService.java} | 2 +-
viewers/commons/model/pom.xml | 5 ++
.../model/header/HeaderUiModelProvider.java | 46 ----------------
viewers/commons/pom.xml | 4 +-
viewers/commons/{model => services}/pom.xml | 29 ++++------
.../services/IsisModuleViewerCommonsServices.java} | 30 +++++------
.../branding/BrandingUiServiceDefault.java} | 22 ++++++--
.../services/header/HeaderUiServiceDefault.java | 61 ++++++++++++++++++++++
.../services/menu/MenuUiServiceDefault.java} | 39 ++++++++++++--
.../commons/services/menu/_MenuItemBuilder.java} | 45 ++++++++--------
.../userprof/UserProfileUiServiceDefault.java} | 15 +++---
viewers/restfulobjects/viewer/pom.xml | 2 +-
.../IsisModuleViewerRestfulObjectsViewer.java | 4 +-
.../viewer/resources/HomePageReprRenderer.java | 8 +--
.../wicket/model/models/ServiceActionsModel.java | 2 +-
viewers/wicket/ui/pom.xml | 6 ++-
.../viewer/wicket/ui/IsisModuleViewerWicketUi.java | 4 +-
.../serviceactions/ServiceActionUtil.java | 10 ++--
.../wicket/ui/components/header/HeaderPanel.java | 6 +--
.../ui/components/widgets/navbar/BrandLogo.java | 2 +-
.../ui/components/widgets/navbar/BrandName.java | 2 +-
.../accmngt/AccountManagementPageAbstract.java | 4 +-
.../isis/viewer/wicket/ui/panels/PanelBase.java | 10 ++--
48 files changed, 315 insertions(+), 265 deletions(-)
diff --git a/core/pom.xml b/core/pom.xml
index 6bc2f16a0c..a31c1125d1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -517,11 +517,26 @@
<artifactId>isis-core-webapp</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-applib</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.isis.viewer</groupId>
<artifactId>isis-viewer-commons-model</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-prism</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-services</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.isis.viewer</groupId>
<artifactId>isis-viewer-restfulobjects-applib</artifactId>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
index 772e990e08..6aee405a5e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleCommon.java
@@ -29,11 +29,13 @@ import org.apache.isis.applib.IsisModuleApplibMixins;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
+import org.apache.isis.viewer.commons.applib.IsisModuleViewerCommonsApplibMixins;
@Configuration
@Import({
IsisModuleApplibChangeAndExecutionLoggers.class,
IsisModuleApplibMixins.class,
+ IsisModuleViewerCommonsApplibMixins.class, // basically adds object impersonation mixins
IsisModuleCoreRuntimeServices.class,
IsisModuleTestingFixturesApplib.class,
})
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/IsisModuleIncViewerJavaFxUi.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/IsisModuleIncViewerJavaFxUi.java
index 304f56b68f..2e26b8da35 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/IsisModuleIncViewerJavaFxUi.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/IsisModuleIncViewerJavaFxUi.java
@@ -37,11 +37,11 @@ import org.apache.isis.incubator.viewer.javafx.ui.decorator.icon.IconServiceDefa
import org.apache.isis.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForButton;
import org.apache.isis.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForFormField;
import org.apache.isis.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingInfoPopupProvider;
+import org.apache.isis.incubator.viewer.javafx.ui.main.MainViewFx;
import org.apache.isis.incubator.viewer.javafx.ui.main.UiActionHandlerFx;
import org.apache.isis.incubator.viewer.javafx.ui.main.UiBuilderFx;
import org.apache.isis.incubator.viewer.javafx.ui.main.UiContextFxDefault;
-import org.apache.isis.viewer.commons.model.IsisModuleViewerCommon;
-import org.apache.isis.incubator.viewer.javafx.ui.main.MainViewFx;
+import org.apache.isis.viewer.commons.applib.IsisModuleViewerCommonsApplib;
/**
*
@@ -50,7 +50,7 @@ import org.apache.isis.incubator.viewer.javafx.ui.main.MainViewFx;
@Configuration
@Import({
// Modules
- IsisModuleViewerCommon.class,
+ IsisModuleViewerCommonsApplib.class,
IsisModuleIncViewerJavaFxModel.class,
// @Components's
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MainViewFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MainViewFx.java
index e288c80958..9cd2c7860a 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MainViewFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MainViewFx.java
@@ -27,14 +27,13 @@ import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
-import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.incubator.viewer.javafx.model.context.UiContextFx;
import org.apache.isis.incubator.viewer.javafx.model.events.JavaFxViewerConfig;
import org.apache.isis.incubator.viewer.javafx.model.util._fx;
import org.apache.isis.incubator.viewer.javafx.ui.components.UiComponentFactoryFx;
import org.apache.isis.incubator.viewer.javafx.ui.components.collections.TableViewFx;
import org.apache.isis.incubator.viewer.javafx.ui.components.object.ObjectViewFx;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiService;
import lombok.RequiredArgsConstructor;
import lombok.val;
@@ -57,7 +56,7 @@ public class MainViewFx {
private final JavaFxViewerConfig viewerConfig;
private final MetaModelContext metaModelContext;
- private final HeaderUiModelProvider headerUiModelProvider;
+ private final HeaderUiService headerUiModelProvider;
private final InteractionService interactionService;
private final UiContextFx uiContext;
private final UiActionHandlerFx uiActionHandler;
@@ -91,8 +90,6 @@ public class MainViewFx {
private void buildMenu() {
val header = headerUiModelProvider.getHeader();
- val commonContext = IsisAppCommonContext.of(metaModelContext);
-
// adding a top level menu 'Home' decorated with a branding-icon ...
val brandingIcon = new ImageView(viewerConfig.getBrandingIcon());
@@ -108,9 +105,9 @@ public class MainViewFx {
val leftMenuBuilder = MenuBuilderFx.of(uiContext, menuBarLeft, uiActionHandler::handleActionLinkClicked);
val rightMenuBuilder = MenuBuilderFx.of(uiContext, menuBarRight, uiActionHandler::handleActionLinkClicked);
- header.getPrimary().buildMenuItems(commonContext, leftMenuBuilder);
- header.getSecondary().buildMenuItems(commonContext, rightMenuBuilder);
- header.getTertiary().buildMenuItems(commonContext, rightMenuBuilder);
+ header.getPrimary().buildMenuItems(metaModelContext, leftMenuBuilder);
+ header.getSecondary().buildMenuItems(metaModelContext, rightMenuBuilder);
+ header.getTertiary().buildMenuItems(metaModelContext, rightMenuBuilder);
}
private void replaceContent(final Node node) {
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
index a0a13b0c8a..dff947e82e 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
@@ -22,8 +22,8 @@ import java.util.function.Consumer;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.incubator.viewer.javafx.model.context.UiContextFx;
-import org.apache.isis.viewer.commons.model.menu.MenuItemDto;
-import org.apache.isis.viewer.commons.model.menu.MenuVisitor;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuItemDto;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuVisitor;
import lombok.RequiredArgsConstructor;
import lombok.val;
diff --git a/incubator/viewers/vaadin/model/src/main/java/org/apache/isis/incubator/viewer/vaadin/model/decorator/Decorators.java b/incubator/viewers/vaadin/model/src/main/java/org/apache/isis/incubator/viewer/vaadin/model/decorator/Decorators.java
index df6d8793f0..b9a4f46656 100644
--- a/incubator/viewers/vaadin/model/src/main/java/org/apache/isis/incubator/viewer/vaadin/model/decorator/Decorators.java
+++ b/incubator/viewers/vaadin/model/src/main/java/org/apache/isis/incubator/viewer/vaadin/model/decorator/Decorators.java
@@ -32,7 +32,7 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import org.apache.isis.applib.layout.component.CssClassFaPosition;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModel;
-import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiService;
import org.apache.isis.viewer.commons.model.decorators.IconDecorator;
import org.apache.isis.viewer.commons.model.decorators.TooltipDecorator;
@@ -123,7 +123,7 @@ public class Decorators {
final Label label,
final IsisAppCommonContext commonContext) {
- val profileIfAny = commonContext.lookupServiceElseFail(UserProfileUiModelProvider.class)
+ val profileIfAny = commonContext.lookupServiceElseFail(UserProfileUiService.class)
.userProfile();
return decorateWithAvatar(label, Optional.ofNullable(profileIfAny));
}
diff --git a/incubator/viewers/vaadin/ui/pom.xml b/incubator/viewers/vaadin/ui/pom.xml
index 568cce9582..69ab186ed4 100644
--- a/incubator/viewers/vaadin/ui/pom.xml
+++ b/incubator/viewers/vaadin/ui/pom.xml
@@ -124,8 +124,12 @@
<dependency>
<groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-services</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
<artifactId>isis-viewer-commons-prism</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/IsisModuleIncViewerVaadinUi.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/IsisModuleIncViewerVaadinUi.java
index b2f41229bc..50ca5c2a7b 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/IsisModuleIncViewerVaadinUi.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/IsisModuleIncViewerVaadinUi.java
@@ -36,13 +36,13 @@ import org.apache.isis.incubator.viewer.vaadin.ui.components.text.TextFieldFacto
import org.apache.isis.incubator.viewer.vaadin.ui.components.text.uuid.UuidFieldFactory;
import org.apache.isis.incubator.viewer.vaadin.ui.pages.main.UiActionHandlerVaa;
import org.apache.isis.incubator.viewer.vaadin.ui.pages.main.UiContextVaaDefault;
-import org.apache.isis.viewer.commons.model.IsisModuleViewerCommon;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
@Configuration
@Import({
// Modules
- IsisModuleViewerCommon.class,
+ IsisModuleViewerCommonsServices.class,
IsisModuleIncViewerVaadinModel.class,
// @Service's
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainViewVaa.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainViewVaa.java
index 8101d621f4..64c938939c 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainViewVaa.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainViewVaa.java
@@ -39,8 +39,8 @@ import org.apache.isis.incubator.viewer.vaadin.ui.components.UiComponentFactoryV
import org.apache.isis.incubator.viewer.vaadin.ui.components.collection.TableViewVaa;
import org.apache.isis.incubator.viewer.vaadin.ui.components.object.ObjectViewVaa;
import org.apache.isis.incubator.viewer.vaadin.ui.util.LocalResourceUtil;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiService;
import org.apache.isis.viewer.commons.model.decorators.IconDecorator;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModelProvider;
import lombok.val;
import lombok.extern.log4j.Log4j2;
@@ -63,7 +63,7 @@ implements BeforeEnterObserver {
private final transient UiContextVaa uiContext;
private final transient UiActionHandlerVaa uiActionHandler;
private final transient UiComponentFactoryVaa uiComponentFactory;
- private final transient HeaderUiModelProvider headerUiModelProvider;
+ private final transient HeaderUiService headerUiService;
private Div pageContent = new Div();
@@ -75,14 +75,14 @@ implements BeforeEnterObserver {
public MainViewVaa(
final MetaModelContext metaModelContext,
final UiActionHandlerVaa uiActionHandler,
- final HeaderUiModelProvider headerUiModelProvider,
+ final HeaderUiService headerUiService,
final UiContextVaa uiContext,
final UiComponentFactoryVaa uiComponentFactory) {
this.metaModelContext = metaModelContext;
this.commonContext = IsisAppCommonContext.of(metaModelContext);
this.uiActionHandler = uiActionHandler;
- this.headerUiModelProvider = headerUiModelProvider;
+ this.headerUiService = headerUiService;
this.uiContext = uiContext;
this.uiComponentFactory = uiComponentFactory;
@@ -100,7 +100,7 @@ implements BeforeEnterObserver {
val menuBarContainer = MainView_createHeader.createHeader(
commonContext,
- headerUiModelProvider.getHeader(),
+ headerUiService.getHeader(),
uiActionHandler::handleActionLinkClicked,
this::renderHomepage);
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView_createHeader.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView_createHeader.java
index 774f3b7dc0..fd5c5ee926 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView_createHeader.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView_createHeader.java
@@ -32,8 +32,9 @@ import com.vaadin.flow.component.orderedlayout.FlexLayout.FlexWrap;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.incubator.viewer.vaadin.model.util._vaa;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModel;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModel;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiService;
import lombok.val;
@@ -72,9 +73,11 @@ final class MainView_createHeader {
val leftMenuBuilder = MenuBuilderVaa.of(commonContext, menuActionEventHandler, leftMenuBar);
val rightMenuBuilder = MenuBuilderVaa.of(commonContext, menuActionEventHandler, rightMenuBar);
- headerUiModel.getPrimary().buildMenuItems(commonContext, leftMenuBuilder);
- headerUiModel.getSecondary().buildMenuItems(commonContext, rightMenuBuilder);
- headerUiModel.getTertiary().buildMenuItems(commonContext, rightMenuBuilder);
+ val menuUiModelProvider = commonContext.lookupServiceElseFail(MenuUiService.class);
+
+ headerUiModel.getPrimary().buildMenuItems(menuUiModelProvider, leftMenuBuilder);
+ headerUiModel.getSecondary().buildMenuItems(menuUiModelProvider, rightMenuBuilder);
+ headerUiModel.getTertiary().buildMenuItems(menuUiModelProvider, rightMenuBuilder);
return menuBarContainer;
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
index 0bad9c6b98..968c6ee6f2 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
@@ -29,8 +29,8 @@ import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.incubator.viewer.vaadin.model.action.ActionUiModelFactoryVaa;
import org.apache.isis.incubator.viewer.vaadin.model.decorator.Decorators;
-import org.apache.isis.viewer.commons.model.menu.MenuItemDto;
-import org.apache.isis.viewer.commons.model.menu.MenuVisitor;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuItemDto;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuVisitor;
import lombok.RequiredArgsConstructor;
import lombok.val;
diff --git a/viewers/commons/model/pom.xml b/viewers/commons/applib/pom.xml
similarity index 69%
copy from viewers/commons/model/pom.xml
copy to viewers/commons/applib/pom.xml
index 51a4cc20ed..120174cc21 100644
--- a/viewers/commons/model/pom.xml
+++ b/viewers/commons/applib/pom.xml
@@ -27,33 +27,19 @@
<version>2.0.0-SNAPSHOT</version>
</parent>
- <artifactId>isis-viewer-commons-model</artifactId>
- <name>Apache Isis Viewer - Commons Model</name>
+ <artifactId>isis-viewer-commons-applib</artifactId>
+ <name>Apache Isis Viewer - Commons Applib</name>
<properties>
- <jar-plugin.automaticModuleName>org.apache.isis.viewer.commons.model</jar-plugin.automaticModuleName>
- <git-plugin.propertiesDir>org/apache/isis/viewer/commons/model</git-plugin.propertiesDir>
+ <jar-plugin.automaticModuleName>org.apache.isis.viewer.commons.applib</jar-plugin.automaticModuleName>
+ <git-plugin.propertiesDir>org/apache/isis/viewer/commons/applib</git-plugin.propertiesDir>
</properties>
<dependencies>
-
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
- </dependency>
-
+
<dependency>
- <groupId>org.webjars</groupId>
- <artifactId>font-awesome</artifactId>
- <version>6.1.2</version> <!-- must correspond to entry in /viewer/common/.../IconDecorator.java -->
- </dependency>
-
- <!-- TESTING -->
-
- <dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-internaltestsupport</artifactId>
- <scope>test</scope>
+ <artifactId>isis-core-metamodel</artifactId>
</dependency>
</dependencies>
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplib.java
similarity index 73%
copy from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
copy to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplib.java
index 8c4fa7975c..866b02368e 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplib.java
@@ -16,17 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib;
-public interface MenuVisitor {
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
- void addTopLevel(MenuItemDto menuDto);
- void addSectionSpacer();
- void addSubMenu(MenuItemDto menuDto);
-
- /**
- * @param named - not null and not empty
- */
- void addSectionLabel(String named);
+@Configuration
+@Import({
+})
+public class IsisModuleViewerCommonsApplib {
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/IsisModuleViewerCommon.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplibMixins.java
similarity index 68%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/IsisModuleViewerCommon.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplibMixins.java
index 37e55187b0..9f931ec82f 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/IsisModuleViewerCommon.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/IsisModuleViewerCommonsApplibMixins.java
@@ -16,31 +16,21 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model;
+package org.apache.isis.viewer.commons.applib;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.apache.isis.viewer.commons.applib.mixins.Object_impersonate;
import org.apache.isis.viewer.commons.applib.mixins.Object_impersonateWithRoles;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModelProvider;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModelProvider;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModelProvider;
-import org.apache.isis.viewer.commons.model.userprofile.UserProfileUiModelProviderDefault;
@Configuration
@Import({
- // @Service's
- BrandingUiModelProvider.class,
- UserProfileUiModelProviderDefault.class,
- MenuUiModelProvider.class,
- HeaderUiModelProvider.class,
-
// @Mixin's
Object_impersonate.class,
Object_impersonateWithRoles.class,
})
-public class IsisModuleViewerCommon {
+public class IsisModuleViewerCommonsApplibMixins {
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
similarity index 100%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
similarity index 100%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModel.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiModel.java
similarity index 95%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModel.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiModel.java
index 1f7c4115f1..46ec4d7ef6 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModel.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiModel.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.branding;
+package org.apache.isis.viewer.commons.applib.services.branding;
import java.io.Serializable;
import java.util.Optional;
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiService.java
similarity index 73%
copy from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
copy to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiService.java
index 8c4fa7975c..27cbea4adc 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/branding/BrandingUiService.java
@@ -16,17 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.branding;
-public interface MenuVisitor {
-
- void addTopLevel(MenuItemDto menuDto);
- void addSectionSpacer();
- void addSubMenu(MenuItemDto menuDto);
+/**
+ * @since 2.0 {@index}}
+ */
+public interface BrandingUiService {
- /**
- * @param named - not null and not empty
- */
- void addSectionLabel(String named);
+ BrandingUiModel getHeaderBranding();
+ BrandingUiModel getSignInBranding();
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModel.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiModel.java
similarity index 85%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModel.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiModel.java
index 0c5f56cae4..19cd36f608 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModel.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiModel.java
@@ -16,11 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.header;
+package org.apache.isis.viewer.commons.applib.services.header;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiModel;
import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModel;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModel;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModel;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiService.java
similarity index 73%
copy from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
copy to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiService.java
index 8c4fa7975c..fe6f4de66c 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/header/HeaderUiService.java
@@ -16,17 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.header;
-public interface MenuVisitor {
-
- void addTopLevel(MenuItemDto menuDto);
- void addSectionSpacer();
- void addSubMenu(MenuItemDto menuDto);
+/**
+ * @since 2.0 {@index}}
+ */
+public interface HeaderUiService {
- /**
- * @param named - not null and not empty
- */
- void addSectionLabel(String named);
+ HeaderUiModel getHeader();
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuItemDto.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuItemDto.java
similarity index 96%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuItemDto.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuItemDto.java
index f4392a4f62..1ab4c36822 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuItemDto.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuItemDto.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.menu;
import org.springframework.lang.Nullable;
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiModel.java
similarity index 74%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiModel.java
index b4d0315f1b..5271c9c221 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiModel.java
@@ -16,20 +16,18 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.menu;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;
import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.applib.layout.menubars.bootstrap.BSMenuBar;
-import org.apache.isis.core.runtime.context.IsisAppCommonContext;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
-import lombok.val;
@Getter
@RequiredArgsConstructor(staticName = "of")
@@ -46,17 +44,15 @@ public class MenuUiModel implements Serializable {
}
public void buildMenuItems(
- final IsisAppCommonContext commonContext,
+ final MetaModelContext mmc,
final MenuVisitor menuBuilder) {
+ buildMenuItems(mmc.getServiceRegistry().lookupServiceElseFail(MenuUiService.class), menuBuilder);
+ }
- val menuBars = commonContext.getMenuBarsService().menuBars();
- val menuBar = (BSMenuBar) menuBars.menuBarFor(getMenuBarSelect());
-
- MenuUiModel_buildMenuItems.buildMenuItems(
- commonContext,
- menuBar,
- menuBuilder);
-
+ public void buildMenuItems(
+ final MenuUiService menuUiService,
+ final MenuVisitor menuBuilder) {
+ menuUiService.buildMenuItems(this, menuBuilder);
}
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiService.java
similarity index 71%
copy from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
copy to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiService.java
index 8c4fa7975c..3f82ef7227 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuUiService.java
@@ -16,17 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.menu;
-public interface MenuVisitor {
+import org.apache.isis.applib.annotation.DomainServiceLayout;
- void addTopLevel(MenuItemDto menuDto);
- void addSectionSpacer();
- void addSubMenu(MenuItemDto menuDto);
+/**
+ * @since 2.0 {@index}}
+ */
+public interface MenuUiService {
- /**
- * @param named - not null and not empty
- */
- void addSectionLabel(String named);
+ MenuUiModel getMenu(DomainServiceLayout.MenuBar menuBarSelect);
+ void buildMenuItems(MenuUiModel menuUiModel, MenuVisitor menuBuilder);
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuVisitor.java
similarity index 94%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuVisitor.java
index 8c4fa7975c..2e0f8931bf 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuVisitor.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/menu/MenuVisitor.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.applib.services.menu;
public interface MenuVisitor {
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModel.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModel.java
similarity index 100%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModel.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModel.java
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModelProvider.java b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiService.java
similarity index 96%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModelProvider.java
rename to viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiService.java
index 0401b7cd99..1851d60d45 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiModelProvider.java
+++ b/viewers/commons/applib/src/main/java/org/apache/isis/viewer/commons/applib/services/userprof/UserProfileUiService.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.services.user.UserService;
*
* @since 2.0 {@index}
*/
-public interface UserProfileUiModelProvider {
+public interface UserProfileUiService {
/**
* A UI model to represent the currently logged in user.
diff --git a/viewers/commons/model/pom.xml b/viewers/commons/model/pom.xml
index 51a4cc20ed..ec21da3be8 100644
--- a/viewers/commons/model/pom.xml
+++ b/viewers/commons/model/pom.xml
@@ -36,6 +36,11 @@
</properties>
<dependencies>
+
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-applib</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.isis.core</groupId>
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModelProvider.java b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModelProvider.java
deleted file mode 100644
index b3e1bc946b..0000000000
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/header/HeaderUiModelProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.viewer.commons.model.header;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar;
-import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModelProvider;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModelProvider;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModelProvider;
-
-@Service
-public class HeaderUiModelProvider {
-
- @Inject private BrandingUiModelProvider brandingUiModelProvider;
- @Inject private UserProfileUiModelProvider userProfileUiModelProvider;
- @Inject private MenuUiModelProvider menuUiModelProvider;
-
- public HeaderUiModel getHeader() {
- return HeaderUiModel.of(
- brandingUiModelProvider.getHeaderBranding(),
- userProfileUiModelProvider.userProfile(),
- menuUiModelProvider.getMenu(MenuBar.PRIMARY),
- menuUiModelProvider.getMenu(MenuBar.SECONDARY),
- menuUiModelProvider.getMenu(MenuBar.TERTIARY));
- }
-
-}
diff --git a/viewers/commons/pom.xml b/viewers/commons/pom.xml
index e2e5e907ea..c7fd6a7214 100644
--- a/viewers/commons/pom.xml
+++ b/viewers/commons/pom.xml
@@ -39,10 +39,12 @@
<dependencies>
</dependencies>
-
+
<modules>
+ <module>applib</module>
<module>model</module>
<module>prism</module>
+ <module>services</module>
</modules>
</project>
diff --git a/viewers/commons/model/pom.xml b/viewers/commons/services/pom.xml
similarity index 72%
copy from viewers/commons/model/pom.xml
copy to viewers/commons/services/pom.xml
index 51a4cc20ed..2b84412875 100644
--- a/viewers/commons/model/pom.xml
+++ b/viewers/commons/services/pom.xml
@@ -27,33 +27,24 @@
<version>2.0.0-SNAPSHOT</version>
</parent>
- <artifactId>isis-viewer-commons-model</artifactId>
- <name>Apache Isis Viewer - Commons Model</name>
+ <artifactId>isis-viewer-commons-services</artifactId>
+ <name>Apache Isis Viewer - Commons Services</name>
<properties>
- <jar-plugin.automaticModuleName>org.apache.isis.viewer.commons.model</jar-plugin.automaticModuleName>
- <git-plugin.propertiesDir>org/apache/isis/viewer/commons/model</git-plugin.propertiesDir>
+ <jar-plugin.automaticModuleName>org.apache.isis.viewer.commons.services</jar-plugin.automaticModuleName>
+ <git-plugin.propertiesDir>org/apache/isis/viewer/commons/services</git-plugin.propertiesDir>
</properties>
<dependencies>
-
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
+
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-model</artifactId>
</dependency>
-
+
<dependency>
- <groupId>org.webjars</groupId>
- <artifactId>font-awesome</artifactId>
- <version>6.1.2</version> <!-- must correspond to entry in /viewer/common/.../IconDecorator.java -->
- </dependency>
-
- <!-- TESTING -->
-
- <dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-internaltestsupport</artifactId>
- <scope>test</scope>
+ <artifactId>isis-core-runtime</artifactId>
</dependency>
</dependencies>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/IsisModuleViewerCommonsServices.java
similarity index 60%
copy from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java
copy to viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/IsisModuleViewerCommonsServices.java
index 3aacaf9bdd..4c5b095eff 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/IsisModuleViewerCommonsServices.java
@@ -16,28 +16,28 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.wicket.ui;
+package org.apache.isis.viewer.commons.services;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.apache.isis.viewer.commons.model.IsisModuleViewerCommon;
-import org.apache.isis.viewer.wicket.model.IsisModuleViewerWicketModel;
-import org.apache.isis.viewer.wicket.ui.app.logout.LogoutHandlerWkt;
-import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
+import org.apache.isis.viewer.commons.services.branding.BrandingUiServiceDefault;
+import org.apache.isis.viewer.commons.services.header.HeaderUiServiceDefault;
+import org.apache.isis.viewer.commons.services.menu.MenuUiServiceDefault;
+import org.apache.isis.viewer.commons.services.userprof.UserProfileUiServiceDefault;
-/**
- * @since 1.x {@index}
- */
@Configuration
@Import({
- // Modules
- IsisModuleViewerCommon.class,
- IsisModuleViewerWicketModel.class,
- // @Service's
- IsisWicketThemeSupportDefault.class,
- LogoutHandlerWkt.class,
+ // @Service's
+ BrandingUiServiceDefault.class,
+ UserProfileUiServiceDefault.class,
+ MenuUiServiceDefault.class,
+ HeaderUiServiceDefault.class,
+
})
-public class IsisModuleViewerWicketUi {
+public class IsisModuleViewerCommonsServices {
+
+ public static final String NAMESPACE = "isis.viewer.commons";
+
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModelProvider.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/branding/BrandingUiServiceDefault.java
similarity index 65%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModelProvider.java
rename to viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/branding/BrandingUiServiceDefault.java
index fad5f1c697..6eda31a501 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/branding/BrandingUiModelProvider.java
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/branding/BrandingUiServiceDefault.java
@@ -16,32 +16,46 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.branding;
+package org.apache.isis.viewer.commons.services.branding;
+import javax.annotation.Priority;
import javax.inject.Inject;
+import javax.inject.Named;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
+import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket.Application;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiService;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
@Service
-public class BrandingUiModelProvider {
+@Named(IsisModuleViewerCommonsServices.NAMESPACE + ".BrandingUiServiceDefault")
+@Priority(PriorityPrecedence.LATE)
+@Qualifier("Default")
+public class BrandingUiServiceDefault
+implements BrandingUiService {
private final Application appConfig;
@Inject
- public BrandingUiModelProvider(IsisConfiguration isisConfiguration) {
- //TODO application name/logo borrowed from Wicket's configuration, we might generalize this config option to all viewers
+ public BrandingUiServiceDefault(final IsisConfiguration isisConfiguration) {
+ //TODO application name/logo borrowed from Wicket's configuration,
+ // we might generalize this config option to all viewers
this.appConfig = isisConfiguration.getViewer().getWicket().getApplication();
}
+ @Override
public BrandingUiModel getHeaderBranding() {
return BrandingUiModel.of(
appConfig.getName(),
appConfig.getBrandLogoHeader().orElse(null));
}
+ @Override
public BrandingUiModel getSignInBranding() {
return BrandingUiModel.of(
appConfig.getName(),
diff --git a/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/header/HeaderUiServiceDefault.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/header/HeaderUiServiceDefault.java
new file mode 100644
index 0000000000..01ccc1f11b
--- /dev/null
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/header/HeaderUiServiceDefault.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.commons.services.header;
+
+import javax.annotation.Priority;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar;
+import org.apache.isis.applib.annotation.PriorityPrecedence;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiService;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiModel;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiService;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiService;
+import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiService;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
+
+import lombok.RequiredArgsConstructor;
+
+@Service
+@Named(IsisModuleViewerCommonsServices.NAMESPACE + ".HeaderUiServiceDefault")
+@Priority(PriorityPrecedence.LATE)
+@Qualifier("Default")
+@RequiredArgsConstructor(onConstructor_ = {@Inject})
+public class HeaderUiServiceDefault
+implements HeaderUiService {
+
+ private final BrandingUiService brandingUiService;
+ private final UserProfileUiService userProfileUiService;
+ private final MenuUiService menuUiService;
+
+ @Override
+ public HeaderUiModel getHeader() {
+ return HeaderUiModel.of(
+ brandingUiService.getHeaderBranding(),
+ userProfileUiService.userProfile(),
+ menuUiService.getMenu(MenuBar.PRIMARY),
+ menuUiService.getMenu(MenuBar.SECONDARY),
+ menuUiService.getMenu(MenuBar.TERTIARY));
+ }
+
+}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModelProvider.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/MenuUiServiceDefault.java
similarity index 59%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModelProvider.java
rename to viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/MenuUiServiceDefault.java
index eabfa7882a..6634e19477 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModelProvider.java
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/MenuUiServiceDefault.java
@@ -16,31 +16,64 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.services.menu;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
+import javax.annotation.Priority;
import javax.inject.Inject;
+import javax.inject.Named;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.annotation.PriorityPrecedence;
+import org.apache.isis.applib.layout.menubars.bootstrap.BSMenuBar;
+import org.apache.isis.applib.services.menu.MenuBarsService;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.util.Facets;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiService;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuVisitor;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
+
+import lombok.RequiredArgsConstructor;
+import lombok.val;
@Service
-public class MenuUiModelProvider {
+@Named(IsisModuleViewerCommonsServices.NAMESPACE + ".MenuUiServiceDefault")
+@Priority(PriorityPrecedence.LATE)
+@Qualifier("Default")
+@RequiredArgsConstructor(onConstructor_ = {@Inject})
+public class MenuUiServiceDefault
+implements MenuUiService {
- @Inject private MetaModelContext metaModelContext;
+ private final MetaModelContext metaModelContext;
+ private final MenuBarsService menuBarsService;
public MenuUiModel getMenu(final DomainServiceLayout.MenuBar menuBarSelect) {
return MenuUiModel.of(menuBarSelect, select(menuBarSelect));
}
+ public void buildMenuItems(
+ final MenuUiModel menuUiModel,
+ final MenuVisitor menuBuilder) {
+
+ val menuBars = menuBarsService.menuBars();
+ val menuBar = (BSMenuBar) menuBars.menuBarFor(menuUiModel.getMenuBarSelect());
+
+ _MenuItemBuilder.buildMenuItems(
+ metaModelContext,
+ menuBar,
+ menuBuilder);
+
+ }
+
// -- HELPER
private List<String> select(final DomainServiceLayout.MenuBar menuBarSelect) {
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel_buildMenuItems.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/_MenuItemBuilder.java
similarity index 80%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel_buildMenuItems.java
rename to viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/_MenuItemBuilder.java
index a520e5c7ca..9551c40c14 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/menu/MenuUiModel_buildMenuItems.java
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/menu/_MenuItemBuilder.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.menu;
+package org.apache.isis.viewer.commons.services.menu;
import java.util.concurrent.atomic.LongAdder;
@@ -26,9 +26,11 @@ import org.apache.isis.applib.layout.menubars.bootstrap.BSMenu;
import org.apache.isis.applib.layout.menubars.bootstrap.BSMenuBar;
import org.apache.isis.applib.layout.menubars.bootstrap.BSMenuSection;
import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
-import org.apache.isis.core.runtime.context.IsisAppCommonContext;
-import org.apache.isis.viewer.commons.model.userprofile.UserProfileUiModelProviderDefault;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuItemDto;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuVisitor;
+import org.apache.isis.viewer.commons.services.userprof.UserProfileUiServiceDefault;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@@ -36,16 +38,16 @@ import lombok.val;
import lombok.extern.log4j.Log4j2;
@Log4j2
-final class MenuUiModel_buildMenuItems {
+final class _MenuItemBuilder {
public static void buildMenuItems(
- IsisAppCommonContext commonContext,
- BSMenuBar menuBar,
- MenuVisitor menuBuilder) {
+ final MetaModelContext mmc,
+ final BSMenuBar menuBar,
+ final MenuVisitor menuBuilder) {
val itemsPerSectionCounter = new LongAdder();
- val menuVisitor = MenuProcessor.of(commonContext, menuBuilder);
+ val menuVisitor = MenuProcessor.of(mmc, menuBuilder);
for (val menu : menuBar.getMenus()) {
@@ -58,7 +60,7 @@ final class MenuUiModel_buildMenuItems {
for (val actionLayoutData : menuSection.getServiceActions()) {
val serviceBeanName = actionLayoutData.getLogicalTypeName();
- val serviceAdapter = commonContext.lookupServiceAdapterById(serviceBeanName);
+ val serviceAdapter = mmc.lookupServiceAdapterById(serviceBeanName);
if(serviceAdapter == null) {
// service not recognized, presumably the menu layout is out of sync with actual configured modules
continue;
@@ -95,25 +97,25 @@ final class MenuUiModel_buildMenuItems {
@RequiredArgsConstructor(staticName = "of")
private static class MenuProcessor {
- private final IsisAppCommonContext commonContext;
+ private final MetaModelContext metaModelContext;
private final MenuVisitor menuVisitor;
private BSMenu currentTopLevel;
private boolean pushedCurrentTopLevel = false;
- public void addTopLevel(BSMenu menu) {
+ public void addTopLevel(final BSMenu menu) {
currentTopLevel = menu;
pushedCurrentTopLevel = false;
}
public void addSubMenu(
- @NonNull BSMenuSection menuSection,
- @NonNull ManagedAction managedAction,
- boolean isFirstInSection,
- ServiceActionLayoutData actionLayoutData) {
+ @NonNull final BSMenuSection menuSection,
+ @NonNull final ManagedAction managedAction,
+ final boolean isFirstInSection,
+ final ServiceActionLayoutData actionLayoutData) {
if(!pushedCurrentTopLevel) {
- val topLevelDto = topLevelDto(commonContext, currentTopLevel);
+ val topLevelDto = topLevelDto(metaModelContext, currentTopLevel);
menuVisitor.addTopLevel(topLevelDto);
pushedCurrentTopLevel = true;
@@ -151,13 +153,13 @@ final class MenuUiModel_buildMenuItems {
* to the current user's profile name
*/
private static MenuItemDto topLevelDto(
- final IsisAppCommonContext commonContext,
+ final MetaModelContext mmc,
final BSMenu menu) {
val menuItemIsUserProfile = _Strings.isNullOrEmpty(menu.getNamed()); // top level menu item name
val menuItemName = menuItemIsUserProfile
- ? userProfileName(commonContext)
+ ? userProfileName(mmc)
: menu.getNamed();
return menuItemIsUserProfile
@@ -167,9 +169,10 @@ final class MenuUiModel_buildMenuItems {
}
private static String userProfileName(
- final IsisAppCommonContext commonContext) {
- val userProfile = commonContext
- .lookupServiceElseFail(UserProfileUiModelProviderDefault.class)
+ final MetaModelContext mmc) {
+ val userProfile = mmc
+ .getServiceRegistry()
+ .lookupServiceElseFail(UserProfileUiServiceDefault.class)
.userProfile();
return userProfile.getUserProfileName();
}
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/userprofile/UserProfileUiModelProviderDefault.java b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/userprof/UserProfileUiServiceDefault.java
similarity index 84%
rename from viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/userprofile/UserProfileUiModelProviderDefault.java
rename to viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/userprof/UserProfileUiServiceDefault.java
index e3e7c7991e..0134b554a7 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/userprofile/UserProfileUiModelProviderDefault.java
+++ b/viewers/commons/services/src/main/java/org/apache/isis/viewer/commons/services/userprof/UserProfileUiServiceDefault.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.commons.model.userprofile;
+package org.apache.isis.viewer.commons.services.userprof;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -31,17 +31,18 @@ import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.user.UserMemento;
import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModel;
-import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiService;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
import lombok.RequiredArgsConstructor;
import lombok.val;
@Service
-@Named("isis.viewer.common.UserProfileServiceDefault")
+@Named(IsisModuleViewerCommonsServices.NAMESPACE + ".UserProfileUiServiceDefault")
@Priority(PriorityPrecedence.LATE)
@Qualifier("Default")
@RequiredArgsConstructor(onConstructor_ = {@Inject})
-public class UserProfileUiModelProviderDefault implements UserProfileUiModelProvider {
+public class UserProfileUiServiceDefault implements UserProfileUiService {
private final UserService userService;
private final TranslationService translationService;
@@ -57,7 +58,7 @@ public class UserProfileUiModelProviderDefault implements UserProfileUiModelProv
.orElse(String.format("<%s>", translated("Anonymous")));
}
- private String userNameFor(UserMemento x) {
+ private String userNameFor(final UserMemento x) {
final String username = x.getName();
if (x.isImpersonating()) {
return String.format("%s (%s)", username, translated("impersonating"));
@@ -68,11 +69,11 @@ public class UserProfileUiModelProviderDefault implements UserProfileUiModelProv
: username;
}
- private String translated(String str) {
+ private String translated(final String str) {
return translationService.translate(TranslationContext.forClassName(getClass()), str);
}
- private static boolean isNullOrEmpty(String realName) {
+ private static boolean isNullOrEmpty(final String realName) {
return realName == null || realName.equals("");
}
diff --git a/viewers/restfulobjects/viewer/pom.xml b/viewers/restfulobjects/viewer/pom.xml
index 2fe944738c..ec9dcf0808 100644
--- a/viewers/restfulobjects/viewer/pom.xml
+++ b/viewers/restfulobjects/viewer/pom.xml
@@ -44,7 +44,7 @@
<dependency>
<groupId>org.apache.isis.viewer</groupId>
- <artifactId>isis-viewer-commons-model</artifactId>
+ <artifactId>isis-viewer-commons-services</artifactId>
</dependency>
<dependency>
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.java
index e572649c8d..12e1c4c3e8 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.java
@@ -22,7 +22,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.apache.isis.core.webapp.IsisModuleCoreWebapp;
-import org.apache.isis.viewer.commons.model.IsisModuleViewerCommon;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
import org.apache.isis.viewer.restfulobjects.rendering.IsisModuleRestfulObjectsRendering;
import org.apache.isis.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest;
import org.apache.isis.viewer.restfulobjects.viewer.mappers.ExceptionMapperForObjectNotFound;
@@ -45,7 +45,7 @@ import org.apache.isis.viewer.restfulobjects.viewer.resources.VersionResourceSer
@Import({
// Modules
IsisModuleCoreWebapp.class,
- IsisModuleViewerCommon.class,
+ IsisModuleViewerCommonsServices.class,
IsisModuleRestfulObjectsRendering.class,
// @Component's
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
index 70b50ee64c..b8a876ad1d 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.services.iactnlayer.InteractionContext;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiService;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -44,7 +44,7 @@ public class HomePageReprRenderer
extends ReprRendererAbstract<Void> {
// injection points not directly managed by Spring, instead resolved via constructor
- @Inject BrandingUiModelProvider brandingUiModelProvider;
+ @Inject BrandingUiService brandingUiService;
HomePageReprRenderer(
final IResourceContext resourceContext,
@@ -171,7 +171,7 @@ extends ReprRendererAbstract<Void> {
private void addLinksToApplicationLogos() {
- brandingUiModelProvider
+ brandingUiService
.getSignInBranding()
.getLogoHref()
.ifPresent(href->
@@ -183,7 +183,7 @@ extends ReprRendererAbstract<Void> {
href)
.buildAsApplicationResource()));
- brandingUiModelProvider
+ brandingUiService
.getHeaderBranding()
.getLogoHref()
.ifPresent(href->
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
index 5fadee054b..720cbf969f 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
@@ -19,7 +19,7 @@
package org.apache.isis.viewer.wicket.model.models;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiModel;
/**
* Backing model for actions of application services menu bar (typically, as
* displayed along the top or side of the page).
diff --git a/viewers/wicket/ui/pom.xml b/viewers/wicket/ui/pom.xml
index cc58e429fa..3a85bb9a87 100644
--- a/viewers/wicket/ui/pom.xml
+++ b/viewers/wicket/ui/pom.xml
@@ -72,10 +72,14 @@
<artifactId>isis-viewer-wicket-model</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.isis.viewer</groupId>
+ <artifactId>isis-viewer-commons-services</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.apache.isis.viewer</groupId>
<artifactId>isis-viewer-commons-prism</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java
index 3aacaf9bdd..dcca476ffa 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleViewerWicketUi.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.ui;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.apache.isis.viewer.commons.model.IsisModuleViewerCommon;
+import org.apache.isis.viewer.commons.services.IsisModuleViewerCommonsServices;
import org.apache.isis.viewer.wicket.model.IsisModuleViewerWicketModel;
import org.apache.isis.viewer.wicket.ui.app.logout.LogoutHandlerWkt;
import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
@@ -32,7 +32,7 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicke
@Configuration
@Import({
// Modules
- IsisModuleViewerCommon.class,
+ IsisModuleViewerCommonsServices.class,
IsisModuleViewerWicketModel.class,
// @Service's
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 8d1e7124d8..ec04acda62 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -27,14 +27,14 @@ import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
-import org.apache.isis.viewer.commons.model.menu.MenuItemDto;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModel;
-import org.apache.isis.viewer.commons.model.menu.MenuVisitor;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuItemDto;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuVisitor;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.LinkAndLabelFactory;
-import org.apache.isis.viewer.wicket.ui.util.WktDecorators;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
+import org.apache.isis.viewer.wicket.ui.util.WktDecorators;
import lombok.RequiredArgsConstructor;
import lombok.val;
@@ -147,7 +147,7 @@ public final class ServiceActionUtil {
final MenuUiModel menuUiModel,
final Consumer<CssMenuItem> onNewMenuItem) {
- menuUiModel.buildMenuItems(commonContext,
+ menuUiModel.buildMenuItems(commonContext.getMetaModelContext(),
MenuBuilderWkt.of(
commonContext,
onNewMenuItem));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.java
index 30cc371b25..5bf6c48576 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.java
@@ -23,11 +23,11 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiModel;
+import org.apache.isis.viewer.commons.applib.services.menu.MenuUiModel;
import org.apache.isis.viewer.commons.applib.services.userprof.UserProfileUiModel;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModel;
import org.apache.isis.viewer.commons.model.components.ComponentType;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModel;
-import org.apache.isis.viewer.commons.model.menu.MenuUiModel;
import org.apache.isis.viewer.wicket.model.models.ServiceActionsModel;
import org.apache.isis.viewer.wicket.model.util.PageParameterUtils;
import org.apache.isis.viewer.wicket.ui.components.widgets.navbar.AvatarImage;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
index 73c04e8931..e45991db87 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
@@ -20,7 +20,7 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.navbar;
import org.apache.wicket.markup.ComponentTag;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
import org.apache.isis.viewer.wicket.ui.components.WebComponentBase;
/**
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
index 099de21150..529de8d59c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
@@ -20,7 +20,7 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.navbar;
import org.apache.wicket.model.Model;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModel;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiModel;
import org.apache.isis.viewer.wicket.ui.components.LabelBase;
/**
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
index 69e35e51e6..f6733e8bd4 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
@@ -31,7 +31,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.isis.viewer.commons.model.branding.BrandingUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.branding.BrandingUiService;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.components.widgets.navbar.BrandLogo;
import org.apache.isis.viewer.wicket.ui.components.widgets.navbar.BrandName;
@@ -99,7 +99,7 @@ public class AccountManagementPageAbstract extends WebPageBase {
private void addApplicationName(final MarkupContainer parent) {
val branding = super.getCommonContext()
- .lookupServiceElseFail(BrandingUiModelProvider.class)
+ .lookupServiceElseFail(BrandingUiService.class)
.getSignInBranding();
val brandLogo = new BrandLogo("brandLogo", branding);
val brandName = new BrandName(ID_APPLICATION_NAME, branding);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 88e8ea0a0f..175e9e730b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -38,8 +38,8 @@ import org.apache.isis.core.interaction.session.MessageBroker;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.core.runtime.context.IsisAppCommonContext.HasCommonContext;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModel;
-import org.apache.isis.viewer.commons.model.header.HeaderUiModelProvider;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiModel;
+import org.apache.isis.viewer.commons.applib.services.header.HeaderUiService;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.model.util.WktContext;
@@ -74,7 +74,7 @@ implements HasCommonContext {
private transient EmailNotificationService emailNotificationService;
private transient EmailVerificationUrlService emailVerificationUrlService;
private transient PageNavigationService pageNavigationService;
- private transient HeaderUiModelProvider headerUiModelProvider;
+ private transient HeaderUiService headerUiService;
protected PanelBase(final String id) {
this(id, null);
@@ -152,8 +152,8 @@ implements HasCommonContext {
}
protected HeaderUiModel getHeaderModel() {
- headerUiModelProvider = computeIfAbsent(HeaderUiModelProvider.class, headerUiModelProvider);
- return headerUiModelProvider.getHeader();
+ headerUiService = computeIfAbsent(HeaderUiService.class, headerUiService);
+ return headerUiService.getHeader();
}
// -- TRANSLATION