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 <ahu...@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