You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2026/01/23 10:28:25 UTC

(causeway) branch 3957-tablerow.action.backport updated (1d68e64d7cd -> 899cc6b0da2)

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

ahuber pushed a change to branch 3957-tablerow.action.backport
in repository https://gitbox.apache.org/repos/asf/causeway.git


    from 1d68e64d7cd CAUSEWAY-3957: [v2] activates Action Column
     new 041fd605797 CAUSEWAY-3957: [v2] backports support for disabling Column Action Feature in CausewayConfiguration
     new 899cc6b0da2 CAUSEWAY-3957: [v2] backports CSS UI fixes for Action Column

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/causeway/core/config/CausewayConfiguration.java    | 10 ++++++++++
 .../ajaxtable/CausewayAjaxHeadersToolbarAbstract.java         |  8 +++++---
 .../collectioncontents/ajaxtable/columns/ActionColumn.java    |  6 ++----
 .../ajaxtable/columns/GenericColumnAbstract.java              |  4 +++-
 .../pages/common/bootstrap/css/bootstrap-overrides-all-v2.css | 11 +++++++++++
 5 files changed, 31 insertions(+), 8 deletions(-)


(causeway) 01/02: CAUSEWAY-3957: [v2] backports support for disabling Column Action Feature in CausewayConfiguration

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 3957-tablerow.action.backport
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 041fd6057970f6141a996edcf8e775a44e30e9bd
Author: andi-huber <ah...@apache.org>
AuthorDate: Fri Jan 23 10:48:18 2026 +0100

    CAUSEWAY-3957: [v2] backports support for disabling Column Action
    Feature in CausewayConfiguration
---
 .../org/apache/causeway/core/config/CausewayConfiguration.java | 10 ++++++++++
 .../collectioncontents/ajaxtable/columns/ActionColumn.java     |  6 ++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
index b94a2e308c5..810afd2fdae 100644
--- a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
+++ b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
@@ -2925,6 +2925,16 @@ public static class Authentication {
         @Data
         public static class Wicket {
 
+        	/**
+             * Whether actions, that have explicit <code>hidden = Where</code> semantics
+             * to enable them in tables,
+             * should be gathered into an action column.
+             * That is, collections of domain objects are presented in the UI as tables,
+             * where corresponding domain object actions are gathered into an additional
+             * (typically trailing) column (labeled 'action-column').
+             */
+            private boolean actionColumnEnabled = true;
+        	
             /**
              * Specifies the subclass of
              * <code>org.apache.causeway.viewer.wicket.viewer.wicketapp.CausewayWicketApplication</code> that is used to
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 4da3ab14949..6862e5cba1c 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
@@ -46,10 +46,8 @@ public static Optional<ActionColumn> create(
             final @NonNull Identifier featureId,
             final @NonNull ObjectSpecification elementType,
             final @NonNull Variant collectionVariant) {
-    	//BACKPORT skipped
-    	//var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket();
-        //if(!wktConfig.isActionColumnEnabled()) return Optional.empty();
-    	//----
+    	var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket();
+        if(!wktConfig.isActionColumnEnabled()) return Optional.empty();
 
         var actions = elementType.streamActionsForColumnRendering(featureId)
                 .collect(Can.toCan());


(causeway) 02/02: CAUSEWAY-3957: [v2] backports CSS UI fixes for Action Column

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 3957-tablerow.action.backport
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 899cc6b0da23068aa3652dbbaa1a4511395ff5e6
Author: andi-huber <ah...@apache.org>
AuthorDate: Fri Jan 23 11:28:18 2026 +0100

    CAUSEWAY-3957: [v2] backports CSS UI fixes for Action Column
---
 .../ajaxtable/CausewayAjaxHeadersToolbarAbstract.java         |  8 +++++---
 .../ajaxtable/columns/GenericColumnAbstract.java              |  4 +++-
 .../pages/common/bootstrap/css/bootstrap-overrides-all-v2.css | 11 +++++++++++
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CausewayAjaxHeadersToolbarAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CausewayAjaxHeadersToolbarAbstract.java
index 2227dbdde2d..bf9421a04cd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CausewayAjaxHeadersToolbarAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/CausewayAjaxHeadersToolbarAbstract.java
@@ -22,6 +22,9 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.causeway.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ActionColumn;
+import org.apache.causeway.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.TitleColumn;
+import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.wicket.Component;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortState;
@@ -42,9 +45,6 @@
 import org.apache.wicket.model.Model;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.causeway.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.TitleColumn;
-import org.apache.causeway.viewer.wicket.ui.util.Wkt;
-
 import de.agilecoders.wicket.core.util.Attributes;
 
 /**
@@ -133,6 +133,8 @@ protected String getCssClass()
 
                 if(column instanceof TitleColumn) {
                     Wkt.cssAppend(header, "title-column");
+                } else if(column instanceof ActionColumn) {
+                    Wkt.cssAppend(header, "action-column");
                 }
             }
         };
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
index 0462ba03259..98f4fdbc3b0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
@@ -79,7 +79,9 @@ public final void populateItem(
             final String componentId,
             final IModel<DataRow> rowModel) {
         cellItem.add(createCellComponent(componentId, rowModel.getObject(), ((DataRowWkt)rowModel).getDataRowToggle()));
-        if(this instanceof TitleColumn) {
+        if(this instanceof ActionColumn) {
+            Wkt.cssAppend(cellItem, "action-column");
+        } else if(this instanceof TitleColumn) {
             Wkt.cssAppend(cellItem, "title-column");
             if(((TitleColumn)this).isTitleSuppressed()) {
                 // governed via CSS: render icon slightly larger, when title-suppressed e.g. 1.25em vs 0.9em (default)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
index 34ccf5c131a..a840f70ce81 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
@@ -214,6 +214,17 @@ footer > .navbar {
 
 /* from CollectionContentsAsAjaxTablePanel.css */
 
+/* action column fixed width */
+.collectionContentsAsAjaxTablePanel th.action-column  {
+  width: 4rem;
+}
+.collectionContentsAsAjaxTablePanel td.action-column  {
+  padding-left: 2rem;
+}
+.collectionContentsAsAjaxTablePanel td.action-column div.additionalLinkList {
+  float: right;
+}
+
 .collectionContentsAsAjaxTablePanel table.contents {
     font-size: 0.9em;
     width: 100%;