This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch maintenance-branch in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 81352c2f542d09ed01c2121a3c66e12cdce8e436 Merge: eda2d7f67c8 fbfe54d234a Author: Andi Huber <[email protected]> AuthorDate: Fri Mar 6 14:24:11 2026 +0100 Merge pull request #3435 from apache/3973-backport.layout.switch CAUSEWAY-3973: [v2] Backport Layout Switching Fixes adoc/changelog.adoc | 3 +- api/applib/src/main/java/module-info.java | 3 +- .../apache/causeway/applib/layout/grid/Grid.java | 108 - .../causeway/applib/layout/grid/GridAbstract.java | 218 -- .../applib/layout/grid/bootstrap/BSElement.java | 26 +- .../bootstrap/BSElementOwnerResolvingWalker.java | 116 + .../applib/layout/grid/bootstrap/BSGrid.java | 306 +-- .../layout/grid/bootstrap/BSGridTransformer.java | 177 ++ .../applib/layout/grid/bootstrap/BSRow.java | 7 +- .../applib/layout/grid/bootstrap/BSTab.java | 6 +- .../applib/layout/grid/bootstrap/BSUtil.java | 243 ++ .../applib/layout/grid/bootstrap/BSWalker.java | 141 + .../applib/layout/resource/LayoutResource.java | 37 +- .../layout/resource}/LayoutResourceLoader.java | 26 +- .../mixins/layout/Object_downloadLayout.java | 23 +- .../applib/services/grid/GridLoaderService.java | 95 - .../applib/services/grid/GridMarshaller.java | 62 + .../services/grid/GridMarshallerService.java | 31 - .../causeway/applib/services/grid/GridService.java | 185 +- .../applib/services/grid/GridSystemService.java | 135 - .../applib/services/layout/LayoutExportStyle.java | 1 - .../applib/services/layout/LayoutService.java | 12 +- bom/pom.xml | 8 +- commons/pom.xml | 5 + commons/src/main/java/module-info.java | 2 + .../causeway/commons/internal/_Java17Ex.java | 25 +- .../commons/internal/collections/_Maps.java | 96 +- .../org/apache/causeway/commons/net/DataUri.java | 191 ++ core/metamodel/src/main/java/module-info.java | 1 - .../metamodel/CausewayModuleCoreMetamodel.java | 39 +- .../_testing/MetaModelContext_forTesting.java | 71 +- .../core/metamodel/consent/InteractionAdvisor.java | 4 +- .../causeway/core/metamodel/facetapi/Facet.java | 9 +- .../core/metamodel/facetapi/FacetAbstract.java | 8 +- .../core/metamodel/facetapi/FacetHolder.java | 42 +- .../metamodel/facetapi/FacetHolderAbstract.java | 135 - .../metamodel/facetapi/FacetHolderLayered.java | 100 +- .../core/metamodel/facetapi/FacetHolderSimple.java | 75 +- .../core/metamodel/facetapi/FacetRank.java | 145 + .../core/metamodel/facetapi/FacetRanking.java | 238 +- .../core/metamodel/facetapi/FacetUtil.java | 63 +- .../core/metamodel/facetapi/HasFacetHolder.java | 4 +- .../core/metamodel/facetapi/QualifiedFacet.java | 68 + .../core/metamodel/facetapi/TypedFacetRanking.java | 266 ++ .../actions/layout/ActionLayoutFacetFactory.java | 58 +- .../ActionPositionFacetForActionLayoutXml.java | 26 +- .../layout/CssClassFacetForActionLayoutXml.java | 25 +- .../actions/layout/FaFacetForActionLayoutXml.java | 25 +- .../layout/HiddenFacetForActionLayoutXml.java | 30 +- .../MemberDescribedFacetForActionLayoutXml.java | 26 +- .../layout/MemberNamedFacetForActionLayoutXml.java | 28 +- .../PromptStyleFacetForActionLayoutAnnotation.java | 105 - .../layout/PromptStyleFacetForActionLayoutXml.java | 69 - .../RedirectFacetFromActionLayoutAnnotation.java | 46 - .../layout/RedirectFacetFromActionLayoutXml.java | 55 - .../actions/redirect/RedirectFacetAbstract.java | 64 - .../actions/redirect/RedirectFacetFallback.java | 30 - .../facets/all/i8n/noun/HasNounFacetAbstract.java | 10 +- .../core/metamodel/facets/all/i8n/noun/Noun.java | 38 +- .../all/named/ObjectNamedFacetSynthesized.java | 2 +- .../CssClassFacetForCollectionLayoutXml.java | 27 +- .../DefaultViewFacetForCollectionLayoutXml.java | 28 +- .../layout/HiddenFacetForCollectionLayoutXml.java | 30 +- ...MemberDescribedFacetForCollectionLayoutXml.java | 27 +- .../MemberNamedFacetForCollectionLayoutXml.java | 27 +- .../layout/PagedFacetForCollectionLayoutXml.java | 27 +- .../SortedByFacetForCollectionLayoutXml.java | 35 +- .../TableDecoratorFacetForCollectionLayoutXml.java | 25 +- .../layout/group/LayoutGroupFacetForLayoutXml.java | 32 +- .../layout/order/LayoutOrderFacetForLayoutXml.java | 22 +- ...ookmarkPolicyFacetForDomainObjectLayoutXml.java | 26 +- .../CssClassFacetForDomainObjectLayoutXml.java | 25 +- .../DomainObjectLayoutFacetFactory.java | 6 +- .../FaFacetForDomainObjectLayoutXml.java | 26 +- ...jectDescribedFacetForDomainObjectLayoutXml.java | 25 +- ...tNamedFacetForDomainObjectLayoutAnnotation.java | 26 +- .../ObjectNamedFacetForDomainObjectLayoutXml.java | 41 +- .../PagedFacetForDomainObjectLayoutAnnotation.java | 7 +- ...ableDecoratorFacetForDomainObjectLayoutXml.java | 26 +- ...NamedFacetForDomainServiceLayoutAnnotation.java | 12 +- .../facets/object/entity/EntityFacet.java | 2 +- .../object/entity/_EntityFacetForTesting.java | 5 +- .../metamodel/facets/object/grid/BSGridFacet.java | 144 + .../metamodel/facets/object/grid/GridFacet.java | 17 +- .../facets/object/grid/GridFacetDefault.java | 134 - .../facets/object/grid/GridFacetFactory.java | 55 +- .../facets/object/layout/LayoutFacetAbstract.java | 42 - .../facets/object/layout/LayoutFacetFallback.java | 43 - .../{LayoutFacet.java => LayoutPrefixFacet.java} | 14 +- .../LayoutPrefixFacetForUiEvent.java} | 86 +- ...Method.java => LayoutPrefixFacetViaMethod.java} | 64 +- .../object/promptStyle/PromptStyleFacet.java | 78 +- .../promptStyle/PromptStyleFacetAbstract.java | 41 - .../promptStyle/PromptStyleFacetAsConfigured.java | 46 - .../object/support/ObjectSupportFacetFactory.java | 4 +- ...ionOrAnyMatchingValueSemanticsFacetFactory.java | 27 +- .../CssClassFacetForPropertyLayoutXml.java | 28 +- .../HiddenFacetForPropertyLayoutXml.java | 32 +- .../LabelAtFacetForPropertyLayoutXml.java | 27 +- .../MemberDescribedFacetForPropertyLayoutXml.java | 27 +- .../MemberNamedFacetForPropertyLayoutXml.java | 29 +- .../MultiLineFacetForPropertyLayoutXml.java | 30 +- ...romptStyleFacetForPropertyLayoutAnnotation.java | 114 - .../PromptStyleFacetForPropertyLayoutXml.java | 70 - .../propertylayout/PropertyLayoutFacetFactory.java | 100 +- .../RenderedAdjustedFacetForPropertyLayoutXml.java | 27 +- .../TypicalLengthFacetForPropertyLayoutXml.java | 27 +- .../UnchangingFacetForPropertyLayoutXml.java | 29 +- .../interactions/managed/ManagedCollection.java | 2 +- .../interactions/managed/ManagedProperty.java | 2 +- .../core/metamodel/layout/LayoutFacetUtil.java | 10 +- .../i18n/SynthesizeObjectNamingPostProcessor.java | 16 +- .../services/grid/FallbackGridProvider.java | 127 + .../core/metamodel/services/grid/GridCache.java | 65 + .../grid/{bootstrap => }/GridFallbackLayout.xml | 0 .../services/grid/GridInitializationModel.java | 300 ++ .../core/metamodel/services/grid/GridLoader.java | 57 + .../services/grid/GridLoaderServiceDefault.java | 248 -- .../services/grid/GridLoadingContext.java | 104 + ...erviceBootstrap.java => GridMarshallerXml.java} | 86 +- .../services/grid/GridServiceDefault.java | 231 +- .../services/grid/LayoutResourceLookup.java | 169 ++ .../services/grid/ObjectMemberResolverForGrid.java | 503 ++++ ...java => XmlLayoutRespectingFacetInstaller.java} | 265 +- .../grid/XsiSchemaLocationProviderForGrid.java | 55 + .../{bootstrap => }/_UnreferencedSequenceUtil.java | 2 +- .../grid/bootstrap/GridSystemServiceBootstrap.java | 630 ----- .../services/grid/bootstrap/_GridModel.java | 231 -- .../services/grid/spi/LayoutResource.java | 31 - .../grid/spi/LayoutResourceLoaderDefault.java | 19 +- .../services/layout/LayoutServiceDefault.java | 114 +- .../metamodel/MetaModelServiceDefault.java | 2 +- .../core/metamodel/spec/ObjectSpecification.java | 13 + .../core/metamodel/spec/feature/ObjectAction.java | 4 +- .../specimpl/dflt/_MembersAsColumns.java | 9 +- .../causeway/core/metamodel/util/Facets.java | 6 +- .../Annotations_synthesizeElseOnClass_Test.java | 63 +- .../Annotations_synthesize_on_Class_Test.java | 25 +- .../Annotations_synthesize_on_Field_Test.java | 34 +- .../Annotations_synthesize_on_Method_Test.java | 30 +- .../Annotations_synthesize_on_Parameter_Test.java | 29 +- .../ident/layout/LayoutFacetFactoryTest.java | 4 +- .../object/ident/layout/LayoutFacetMethodTest.java | 17 +- ...romptStyleFacetFromPropertyAnnotation_Test.java | 200 +- .../objects/ObjectActionLayoutXmlDefaultTest.java | 9 +- .../objects/OneToManyAssociationDefaultTest.java | 3 +- .../metamodel/services/grid/Bar-simple.layout.xml | 37 + .../causeway/core/metamodel/services/grid/Bar.java | 33 + ...meTest.java => GridCache_resourceNameTest.java} | 37 +- .../metamodel/services/grid/GridLoadingTest.java | 55 +- .../services/grid/GridXmlRoundtripTest.java | 23 +- .../services/grid/LayoutSwitchingTest.java | 180 ++ .../specimpl/ObjectAssociationAbstractTest.java | 2 +- .../specimpl/OneToOneAssociationAbstractTest.java | 2 +- .../menubars/MenuBarsLoaderServiceDefault.java | 2 - .../bootstrap/BSMenuBarsAttributesAppender.java | 57 + .../MenuBarsMarshallerServiceBootstrap.java | 15 +- .../bootstrap/MenuBarsServiceBootstrap.java | 135 +- .../sitemap/SitemapServiceDefault.java | 9 +- .../help/topics/welcome/WelcomeHelpPage.java | 127 +- .../spiimpl/LayoutResourceLoaderFromGithub.java | 19 +- ...hPdfJsViewer_IntegTest.dump_facets.approved.xml | 104 +- ..._MixinDomain_IntegTest.dump_facets.approved.xml | 104 +- ...hPdfjsViewer_IntegTest.dump_facets.approved.xml | 70 +- ...r_PropDomain_IntegTest.dump_facets.approved.xml | 70 +- .../interaction/DomainObjectTesterFactory.java | 6 +- .../MetaModelRegressionTest.verify.approved.xml | 2895 ++++++-------------- .../viewer/commons/model/layout/UiGridLayout.java | 76 +- .../common/query/meta/CommonMetaFetcher.java | 6 +- .../viewer/controller/ResourceController.java | 25 +- .../resources/DomainObjectResourceServerside.java | 12 +- .../components/entity/fieldset/PropertyGroup.java | 2 +- .../viewer/wicket/ui/pages/entity/EntityPage.java | 46 +- 173 files changed, 6668 insertions(+), 7231 deletions(-)
