From 053458f206b2f592adced5ee95cae9cc8fd47762 Mon Sep 17 00:00:00 2001 From: Andi Huber Date: Tue, 26 Nov 2024 20:10:04 +0100 Subject: [PATCH] CAUSEWAY-3815: CSS fix; also force new tab when collection is standalone --- .../serviceactions/ServiceActionsPanel.css | 4 ---- .../CollectionContentsAsAjaxTablePanel.java | 2 +- .../ajaxtable/columns/ActionColumn.java | 21 +++++++++++++------ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionlinks/serviceactions/ServiceActionsPanel.css b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionlinks/serviceactions/ServiceActionsPanel.css index b32bfdfee21..6f65e140d34 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionlinks/serviceactions/ServiceActionsPanel.css +++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionlinks/serviceactions/ServiceActionsPanel.css @@ -353,10 +353,6 @@ padding-left: 39px; } -.additionalLinkListDropDown .dropdown-menu > li > a { - padding-left: 0px; -} - .dropdown-menu > li > a.btn.btn-warning { text-align: start; border-radius: 0; diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java index 8b7b095bf95..308e40c0810 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java +++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java @@ -242,7 +242,7 @@ private void addActionsColumnIfRequired( final List columns) { var collectionModel = getModel(); var memberIdentifier = collectionModel.getIdentifier(); - ActionColumn.create(memberIdentifier, elementType).ifPresent(columns::add); + ActionColumn.create(memberIdentifier, elementType, collectionModel.getVariant()).ifPresent(columns::add); } } diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ActionColumn.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ActionColumn.java index 3c205e94f06..5b12bd592ee 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ActionColumn.java +++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ActionColumn.java @@ -28,6 +28,7 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.viewer.wicket.model.models.ActionModel; import org.apache.causeway.viewer.wicket.model.models.ActionModel.ColumnActionModifier; +import org.apache.causeway.viewer.wicket.model.models.EntityCollectionModel.Variant; import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt; import org.apache.causeway.viewer.wicket.model.models.interaction.coll.DataRowWkt; import org.apache.causeway.viewer.wicket.ui.components.actionlinks.entityactions.ActionLinksPanel; @@ -42,26 +43,30 @@ public final class ActionColumn public static Optional create( @NonNull final Identifier featureId, - @NonNull final ObjectSpecification elementType) { + @NonNull final ObjectSpecification elementType, + @NonNull final Variant collectionVariant) { + var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket(); + if(!wktConfig.isActionColumnEnabled()) return Optional.empty(); + var actions = elementType.streamActionsForColumnRendering(featureId) .collect(Can.toCan()); if(actions.isEmpty()) return Optional.empty(); - var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket(); - return wktConfig.isActionColumnEnabled() - ? Optional.of(new ActionColumn(elementType, actions)) - : Optional.empty(); + return Optional.of(new ActionColumn(elementType, actions, collectionVariant)); } private final Can actionIds; private transient Can actions; + private final Variant collectionVariant; private ActionColumn( final ObjectSpecification elementType, - final Can actionsForColumnRendering) { + final Can actionsForColumnRendering, + final Variant collectionVariant) { super(elementType, "Actions"); this.actions = actionsForColumnRendering; this.actionIds = actions.map(ObjectAction::getId); + this.collectionVariant = collectionVariant; } @Override @@ -88,6 +93,10 @@ protected Component createCellComponent( private ColumnActionModifier determineColumnActionModifier( final ObjectAction action, final ObjectSpecification collectionElementType) { + + // refreshing of standalone collections currently not supported + if(collectionVariant.isStandalone()) return ColumnActionModifier.FORCE_NEW_BROWSER_WINDOW; + return action.getElementType().isVoid() || action.getElementType().isOfType(collectionElementType) ? ColumnActionModifier.FORCE_STAY_ON_PAGE