This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v3
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit aa7d91921272546775d102fa1fc09f504158ed2b
Merge: 3cfecf841c b6ef625eb0
Author: Andi Huber <[email protected]>
AuthorDate: Sat Oct 26 18:58:47 2024 +0200

    merge master into v3

 .../core/config/CausewayConfiguration.java         |   8 +
 .../viewers/common/wkt/InteractionTestWkt.java     |   4 +-
 .../commons/model/src/main/java/module-info.java   |   1 -
 .../commons/model/action/HasManagedAction.java     |  11 +
 .../model/action/decorator/UiActionDecorator.java  |  46 ----
 .../commons/model/decorators/ActionDecorators.java | 146 ++++++++++++
 .../commons/model/decorators/ConfirmDecorator.java |  39 ++--
 .../model/decorators/DisablingDecorator.java       |  11 +-
 .../model/decorators/FormLabelDecorator.java       |  26 +--
 .../model/decorators/PrototypingDecorator.java     |  12 +-
 .../commons/model/decorators/TooltipDecorator.java |   8 +-
 .../viewer/wicket/model/links/LinkAndLabel.java    |   8 +-
 .../actionresponse/ActionResultResponseType.java   |  19 +-
 .../wicket/ui/actionresponse/_DownloadHandler.java |   7 +-
 .../wicket/ui/actionresponse/_RedirectHandler.java |   5 +-
 .../wicket/ui/app/logout/LogoutHandlerWkt.java     |   3 +-
 .../entityactions/AdditionalLinksPanel.java        |  17 +-
 .../entityactions/LinkAndLabelFactory.java         |   7 +-
 .../actionmenu/serviceactions/CssMenuItem.java     |  44 ++--
 .../actionmenu/serviceactions/MenuActionPanel.java |  13 +-
 .../serviceactions/ServiceActionUtil.java          |  44 ++--
 .../serviceactions/ServiceActionsPanel.java        |   8 +-
 .../serviceactions/ServiceActionsPanelFactory.java |  10 +-
 .../serviceactions/TertiaryMenuPanelFactory.java   |  10 +-
 .../actionprompt/ActionPromptHeaderPanel.java      |   4 +-
 .../components/actions/ActionParametersForm.java   |  32 ++-
 .../actions/ActionParametersFormPanel.java         |   4 +-
 .../viewer/wicket/ui/components/actions/_Xray.java |   7 +-
 .../bookmarkedpages/BookmarkedPagesPanel.java      |   8 +-
 .../ui/components/collection/CollectionPanel.java  |  12 +-
 .../CollectionPresentationSelectorPanel.java       |  19 +-
 .../CollectionContentsAsAjaxTablePanel.java        |  22 +-
 .../CollectionContentsSortableDataProvider.java    |   3 +-
 .../ajaxtable/columns/GenericColumnAbstract.java   |   4 +-
 .../ajaxtable/columns/PluralColumn.java            |  19 +-
 .../ajaxtable/columns/SingularColumn.java          |  12 +-
 .../ajaxtable/columns/TitleColumn.java             |  16 +-
 .../ajaxtable/columns/ToggleboxColumn.java         |  10 +-
 .../export/CollectionContentsAsExportFactory.java  |   3 +-
 .../icons/CollectionContentsAsIconsPanel.java      |   6 +-
 .../CollectionContentsAsIconsPanelFactory.java     |   4 +-
 .../summary/CollectionContentsAsSummary.java       |   8 +-
 .../CollectionContentsAsSummaryFactory.java        |   4 +-
 .../entity/EntityComponentFactoryAbstract.java     |   6 +-
 .../entity/collection/EntityCollectionPanel.java   |  11 +-
 .../collection/EntityCollectionPanelFactory.java   |   3 +-
 .../components/entity/fieldset/PropertyGroup.java  |  18 +-
 .../entity/header/EntityHeaderPanel.java           |   6 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |  13 +-
 .../icontitle/EntityIconAndTitlePanelFactory.java  |   4 +-
 .../wicket/ui/components/footer/FooterPanel.java   |  20 +-
 .../wicket/ui/components/header/HeaderPanel.java   |  14 +-
 .../ui/components/layout/bs/BSGridPanel.java       |  10 +-
 .../components/layout/bs/BSGridPanelFactory.java   |  10 +-
 .../wicket/ui/components/layout/bs/col/Col.java    |  10 +-
 .../components/layout/bs/tabs/TabGroupPanel.java   |   6 +-
 .../ui/components/property/PropertyEditForm.java   |   8 +-
 .../components/property/PropertyEditFormPanel.java |   4 +-
 .../PropertyEditPromptHeaderPanel.java             |   4 +-
 .../components/scalars/ScalarFragmentFactory.java  |  15 +-
 .../scalars/ScalarModelChangeDispatcher.java       |   5 +-
 .../ui/components/scalars/ScalarPanelAbstract.java |  44 ++--
 .../components/scalars/ScalarPanelAbstract2.java   |  34 ++-
 .../scalars/ScalarPanelFormFieldAbstract.java      |  14 +-
 .../scalars/ScalarPanelSelectAbstract.java         |   9 +-
 .../scalars/ScalarPanelTextFieldAbstract.java      |   4 +-
 .../ScalarPanelTextFieldWithTemporalPicker.java    |   6 +-
 .../viewer/wicket/ui/components/scalars/_Util.java |   7 +-
 .../viewer/wicket/ui/components/scalars/_Xray.java |   8 +-
 .../blobclob/CausewayBlobOrClobPanelAbstract.java  |  16 +-
 .../ui/components/scalars/bool/BooleanPanel.java   |   2 +-
 .../choices/ChoicesSelect2PanelFactory.java        |   6 +-
 .../scalars/choices/ObjectChoicesSelect2Panel.java |  22 +-
 .../scalars/choices/ValueChoicesSelect2Panel.java  |   6 +-
 .../datepicker/TextFieldWithDateTimePicker.java    |  14 +-
 .../scalars/image/JavaAwtImagePanel.java           |  10 +-
 .../scalars/image/JavaAwtImagePanelFactory.java    |   4 +-
 .../ui/components/scalars/image/_WktImageUtil.java |  11 +-
 .../components/scalars/markup/MarkupComponent.java |   9 +-
 .../scalars/markup/MarkupComponent_reloadJs.java   |   6 +-
 .../scalars/markup/MarkupPanelFactories.java       |   8 +-
 .../scalars/markup/StandaloneMarkupPanel.java      |   4 +-
 .../StandaloneCollectionPanel.java                 |   8 +-
 .../StandaloneCollectionPanelFactory.java          |   4 +-
 .../ui/components/table/CausewayAjaxDataTable.java |   4 +-
 .../tree/CausewayToWicketTreeAdapter.java          |  12 +-
 .../ui/components/tree/ParentedTreePanel.java      |   8 +-
 .../ui/components/tree/TreePanelFactories.java     |   4 +-
 .../ui/components/unknown/UnknownModelPanel.java   |  10 +-
 .../ui/components/value/StandaloneValuePanel.java  |   4 +-
 .../widgets/breadcrumbs/BreadcrumbPanel.java       |   4 +-
 .../widgets/checkbox/ContainedToggleboxPanel.java  |   6 +-
 .../entitysimplelink/EntityLinkSimplePanel.java    |   8 +-
 .../widgets/linkandlabel/ActionLink.java           |  29 ++-
 .../ui/components/widgets/select2/Select2.java     |   5 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |   5 +-
 .../widgets/select2/Select2OnSelect.java           |  19 +-
 .../select2/providers/ChoiceProviderAbstract.java  |  14 +-
 .../select2/providers/ChoiceProviderDefault.java   |  14 +-
 .../CausewayWicketThemeSupportDefault.java         |  11 +-
 .../widgets/themepicker/ThemeChooser.java          |   4 +-
 .../themepicker/ThemeProviderComposite.java        |   3 +-
 .../viewer/wicket/ui/errors/ExceptionModel.java    |   6 +-
 .../wicket/ui/errors/ExceptionStackTracePanel.java |   6 +-
 .../viewer/wicket/ui/errors/JGrowlBehaviour.java   |   6 +-
 .../viewer/wicket/ui/errors/JGrowlUtil.java        |   5 +-
 .../viewer/wicket/ui/pages/PageAbstract.java       |  15 +-
 .../ui/pages/accmngt/AccountConfirmationMap.java   |  10 +-
 .../accmngt/AccountManagementPageAbstract.java     |  14 +-
 .../ui/pages/accmngt/EmailAvailableValidator.java  |   6 +-
 .../accmngt/SuccessFeedbackCookieManager.java      |   7 +-
 .../pages/accmngt/UsernameAvailableValidator.java  |   6 +-
 .../password_reset/PasswordResetEmailPanel.java    |  12 +-
 .../accmngt/password_reset/PasswordResetPage.java  |   6 +-
 .../accmngt/password_reset/PasswordResetPanel.java |   6 +-
 .../ui/pages/accmngt/register/RegisterPanel.java   |   6 +-
 .../viewer/wicket/ui/pages/entity/EntityPage.java  |   8 +-
 .../viewer/wicket/ui/pages/error/ErrorPage.java    |   6 +-
 .../viewer/wicket/ui/pages/home/HomePage.java      |  12 +-
 .../wicket/ui/pages/login/CausewaySignInPanel.java |  12 +-
 .../wicket/ui/pages/login/SignInPanelAbstract.java |  15 +-
 .../wicket/ui/pages/login/WicketSignInPage.java    |   4 +-
 .../viewer/wicket/ui/pages/value/ValuePage.java    |   4 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |   9 +-
 .../wicket/ui/panels/PromptFormAbstract.java       |   8 +-
 .../viewer/wicket/ui/util/BootstrapConstants.java  |   3 +-
 .../wicket/ui/util/LicensedTextTemplate.java       |   4 +-
 .../apache/causeway/viewer/wicket/ui/util/Wkt.java |  17 +-
 .../viewer/wicket/ui/util/WktDecorators.java       | 245 ++++++++++++---------
 .../causeway/viewer/wicket/ui/util/WktLinks.java   |  78 ++-----
 .../viewer/wicket/ui/util/WktTooltips.java         |  15 +-
 .../causeway/viewer/wicket/ui/util/XrayWkt.java    |   3 +-
 132 files changed, 857 insertions(+), 988 deletions(-)

diff --cc 
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
index ea541408da,44c2bee0f8..e0ef613030
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
@@@ -44,13 -42,12 +43,13 @@@ import lombok.NonNull
  public interface LinkAndLabelFactory
  extends Function<ObjectAction, LinkAndLabel> {
  
 -    public static LinkAndLabelFactory forMenu(
 -            final UiObjectWkt serviceModel) {
 -        return action -> LinkAndLabel.of(
 +    public static LinkAndLabel linkAndLabelForMenu(
 +            @NonNull final MenuAction menuAction) {
-         val serviceModel = 
UiObjectWkt.ofBookmark(menuAction.serviceBookmark());
++        var serviceModel = 
UiObjectWkt.ofBookmark(menuAction.serviceBookmark());
 +        return LinkAndLabel.of(
                  ActionModelImpl.forEntity(
                          serviceModel,
 -                        action.getFeatureIdentifier(),
 +                        menuAction.actionId(),
                          Where.ANYWHERE,
                          null, null, null),
                  new MenuLinkFactory());
diff --cc 
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 59055cd67b,d4421d36af..560d128b5f
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@@ -25,11 -25,15 +25,12 @@@ import org.apache.wicket.markup.html.li
  import org.apache.wicket.markup.html.panel.Fragment;
  
  import org.apache.causeway.commons.collections.Can;
--import org.apache.causeway.core.metamodel.context.MetaModelContext;
 -import org.apache.causeway.core.metamodel.interactions.managed.ManagedAction;
 -import org.apache.causeway.viewer.commons.applib.services.menu.MenuItemDto;
 -import org.apache.causeway.viewer.commons.applib.services.menu.MenuUiModel;
  import org.apache.causeway.viewer.commons.applib.services.menu.MenuVisitor;
 +import 
org.apache.causeway.viewer.commons.applib.services.menu.model.MenuAction;
 +import 
org.apache.causeway.viewer.commons.applib.services.menu.model.MenuDropdown;
 +import 
org.apache.causeway.viewer.commons.applib.services.menu.model.NavbarSection;
+ import 
org.apache.causeway.viewer.commons.model.decorators.ActionDecorators.ActionDecorationModel;
+ import 
org.apache.causeway.viewer.commons.model.decorators.ActionDecorators.ActionStyle;
 -import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
 -import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
  import 
org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.LinkAndLabelFactory;
  import org.apache.causeway.viewer.wicket.ui.util.Wkt;
  import org.apache.causeway.viewer.wicket.ui.util.WktDecorators;
@@@ -48,20 -49,17 +46,17 @@@ class ServiceActionUtil 
              final ListItem<CssMenuItem> listItem,
              final MarkupContainer parent) {
  
-         val actionUiModel = menuItem.getLinkAndLabel();
-         val menuItemActionLink = actionUiModel.getUiComponent();
-         val menuItemLabel = Wkt.labelAdd(menuItemActionLink, "menuLinkLabel", 
menuItem.getName());
+         var linkAndLabel = menuItem.getLinkAndLabel();
+         var menuItemActionLink = linkAndLabel.getUiComponent();
+         var menuItemLabel = Wkt.labelAdd(menuItemActionLink, "menuLinkLabel", 
menuItem.getName());
  
-         WktDecorators.getActionLink().decorateMenuItem(
-                 listItem,
-                 actionUiModel,
-                 commonContext.getTranslationService());
+         WktDecorators
 -            .decorateMenuAction(menuItemActionLink, listItem, menuItemLabel, 
++            .decorateMenuAction(menuItemActionLink, listItem, menuItemLabel,
+                     ActionDecorationModel.builder(linkAndLabel)
+                         .actionStyle(ActionStyle.MENU_ITEM)
+                         .build());
  
-         val faLayers = actionUiModel.lookupFontAwesomeLayers(true);
-         WktDecorators.getIcon().decorate(menuItemLabel, faLayers);
-         WktDecorators.getMissingIcon().decorate(menuItemActionLink, faLayers);
- 
-         val leafItem = new Fragment("content", "leafItem", parent);
+         var leafItem = new Fragment("content", "leafItem", parent);
          leafItem.add(menuItemActionLink);
  
          listItem.add(leafItem);
@@@ -108,32 -104,41 +102,32 @@@
          }
  
          @Override
 -        public void addSectionSpacer() {
 +        public void onSectionSpacer() {
-             val menuSection = CssMenuItem.newSpacer();
+             var menuSection = CssMenuItem.newSpacer();
              currentTopLevelMenu.addSubMenuItem(menuSection);
          }
  
          @Override
 -        public void addSubMenu(final MenuItemDto menuDto) {
 -            var managedAction = menuDto.getManagedAction();
 -
 -            var menuItem = CssMenuItem.newMenuItemWithLink(menuDto.getName());
 +        public void onMenuAction(final MenuAction menuAction) {
-             val menuItem = CssMenuItem.newMenuItemWithLink(menuAction.name());
++            var menuItem = CssMenuItem.newMenuItemWithLink(menuAction.name());
              currentTopLevelMenu.addSubMenuItem(menuItem);
 -
 -            menuItem.setLinkAndLabel(newActionLink(managedAction));
 +            
menuItem.setLinkAndLabel(LinkAndLabelFactory.linkAndLabelForMenu(menuAction));
          }
  
          @Override
 -        public void addSectionLabel(final String named) {
 +        public void onSectionLabel(final String named) {
-             val menuSectionLabel = CssMenuItem.newSectionLabel(named);
+             var menuSectionLabel = CssMenuItem.newSectionLabel(named);
              currentTopLevelMenu.addSubMenuItem(menuSectionLabel);
          }
 -
 -        private LinkAndLabel newActionLink(final ManagedAction managedAction) 
{
 -            var serviceModel = 
UiObjectWkt.ofAdapter(managedAction.getOwner());
 -            return LinkAndLabelFactory.forMenu(serviceModel)
 -                    .apply(managedAction.getAction());
 -        }
      }
  
 -    void buildMenu(
 -            final MetaModelContext commonContext,
 -            final MenuUiModel menuUiModel,
 +    public static void buildMenu(
 +            final NavbarSection navBarSection,
              final Consumer<CssMenuItem> onNewMenuItem) {
  
 -        menuUiModel.buildMenuItems(commonContext.getMetaModelContext(),
 -                MenuBuilderWkt.of(onNewMenuItem));
 +        navBarSection.visitMenuItems(
 +                MenuBuilderWkt.of(
 +                        onNewMenuItem));
      }
  
  }
diff --cc 
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
index c42b6c172f,0deac34472..95ba364ff5
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
@@@ -48,8 -46,8 +46,8 @@@ public class ServiceActionsPanelFactor
          if(!(model instanceof ServiceActionsModel)) {
              return ApplicationAdvice.DOES_NOT_APPLY;
          }
-         val navBarSection = ((ServiceActionsModel) model).getObject();
-         val menuBarSelect = navBarSection.menuBarSelect();
 -        var menuUiModel = ((ServiceActionsModel) model).getObject();
 -        var menuBarSelect = menuUiModel.getMenuBarSelect();
++        var navBarSection = ((ServiceActionsModel) model).getObject();
++        var menuBarSelect = navBarSection.menuBarSelect();
          return appliesIf(
                  menuBarSelect != DomainServiceLayout.MenuBar.TERTIARY
                  && menuBarSelect != null);
@@@ -57,10 -55,11 +55,10 @@@
  
      @Override
      public Component createComponent(final String id, final IModel<?> model) {
-         val navBarSection = ((ServiceActionsModel) model).getObject();
 -        var menuUiModel = ((ServiceActionsModel) model).getObject();
++        var navBarSection = ((ServiceActionsModel) model).getObject();
  
-         val menuItems = _Lists.<CssMenuItem>newArrayList();
+         var menuItems = _Lists.<CssMenuItem>newArrayList();
 -        ServiceActionUtil.buildMenu(
 -                super.getMetaModelContext(), menuUiModel, menuItems::add);
 +        ServiceActionUtil.buildMenu(navBarSection, menuItems::add);
  
          return new ServiceActionsPanel(id, menuItems);
      }
diff --cc 
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
index cc47f75f8c,f0cfa16db7..b3106c6cad
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
@@@ -47,8 -45,8 +45,8 @@@ public class TertiaryMenuPanelFactory e
          if(!(model instanceof ServiceActionsModel)) {
              return ApplicationAdvice.DOES_NOT_APPLY;
          }
-         val menuUiModel = ((ServiceActionsModel) model).getObject();
-         val menuBarSelect = menuUiModel.menuBarSelect();
+         var menuUiModel = ((ServiceActionsModel) model).getObject();
 -        var menuBarSelect = menuUiModel.getMenuBarSelect();
++        var menuBarSelect = menuUiModel.menuBarSelect();
          return appliesIf(
                  menuBarSelect == DomainServiceLayout.MenuBar.TERTIARY
                  || menuBarSelect == null);
@@@ -56,10 -54,11 +54,10 @@@
  
      @Override
      public Component createComponent(final String id, final IModel<?> model) {
-         val navBarSection = ((ServiceActionsModel) model).getObject();
 -        var menuUiModel = ((ServiceActionsModel) model).getObject();
++        var navBarSection = ((ServiceActionsModel) model).getObject();
  
-         val menuItems = _Lists.<CssMenuItem>newArrayList();
+         var menuItems = _Lists.<CssMenuItem>newArrayList();
 -        ServiceActionUtil.buildMenu(
 -                super.getMetaModelContext(), menuUiModel, menuItems::add);
 +        ServiceActionUtil.buildMenu(navBarSection, menuItems::add);
  
          return new TertiaryActionsPanel(id, menuItems);
      }
diff --cc 
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/header/HeaderPanel.java
index 0f96a3550c,89436ff509..881cb2e700
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/header/HeaderPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/header/HeaderPanel.java
@@@ -68,10 -66,10 +66,10 @@@ extends PanelAbstract<String, Model<Str
      protected void onInitialize() {
          super.onInitialize();
  
-         val headerUiModel = super.getHeaderModel();
+         var headerUiModel = super.getHeaderModel();
  
 -        addApplicationName(headerUiModel.getBranding());
 -        addUserName(headerUiModel.getUserProfile());
 +        addApplicationName(headerUiModel.branding());
 +        addUserName(headerUiModel.userProfile());
          addServiceActionMenuBars(headerUiModel);
      }
  
@@@ -108,7 -106,6 +106,7 @@@
      }
  
      protected void addServiceActionMenuBars(final HeaderUiModel 
headerUiModel) {
-         val navbar = headerUiModel.navbar();
++        var navbar = headerUiModel.navbar();
          if (getPage() instanceof ErrorPage) {
              WktComponents.permanentlyHide(this, ID_PRIMARY_MENU_BAR);
              WktComponents.permanentlyHide(this, ID_SECONDARY_MENU_BAR);
@@@ -122,13 -119,13 +120,13 @@@
  
      private void addMenuBar(
              final String id,
 -            final MenuUiModel menuUiModel) {
 +            final NavbarSection menuUiModel) {
  
          final MarkupContainer container = this;
-         val menuModel = new ServiceActionsModel(menuUiModel);
-         val menuBarComponent = getComponentFactoryRegistry()
+         var menuModel = new ServiceActionsModel(menuUiModel);
+         var menuBarComponent = getComponentFactoryRegistry()
                  .createComponent(id, UiComponentType.SERVICE_ACTIONS, 
menuModel);
 -        Wkt.cssAppend(menuBarComponent, menuUiModel.getCssClass());
 +        Wkt.cssAppend(menuBarComponent, menuUiModel.cssClass());
          container.add(menuBarComponent);
      }
  

Reply via email to