This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/main by this push:
new fbf5cc6600e CAUSEWAY-2297: makes tabGroup's collapseIfOne an opt-out
fbf5cc6600e is described below
commit fbf5cc6600e1c77bbd82aa5ef618d2a7209528bd
Author: Andi Huber <[email protected]>
AuthorDate: Thu Oct 23 13:41:01 2025 +0200
CAUSEWAY-2297: makes tabGroup's collapseIfOne an opt-out
---
.../services/grid/bootstrap/CollapseIfOneTabProcessor.java | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/CollapseIfOneTabProcessor.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/CollapseIfOneTabProcessor.java
index 50c9b84bdcd..7263000b5e8 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/CollapseIfOneTabProcessor.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/CollapseIfOneTabProcessor.java
@@ -18,6 +18,8 @@
*/
package org.apache.causeway.core.metamodel.services.grid.bootstrap;
+import java.util.Optional;
+
import org.apache.causeway.applib.layout.grid.bootstrap.BSCol;
import org.apache.causeway.applib.layout.grid.bootstrap.BSGrid;
import org.apache.causeway.applib.layout.grid.bootstrap.BSTabGroup;
@@ -33,11 +35,17 @@ public void run() {
bsGrid.visit(new BSGrid.VisitorAdapter() {
@Override
public void visit(BSTabGroup bsTabGroup) {
- if(bsTabGroup.isCollapseIfOne() == null
- || !bsTabGroup.isCollapseIfOne()
+ var isCollapseIfOne =
Optional.ofNullable(bsTabGroup.isCollapseIfOne())
+ .map(boolean.class::cast)
+ .orElse(true); // opt-out semantics: absence of the
attribute results in participation
+
+ if(!isCollapseIfOne
|| bsTabGroup.getTabs().size()>1) {
return;
}
+
+ if(!isCollapseIfOne) return;
+
var parent = (BSCol) bsTabGroup.getOwner();
parent.getTabGroups().remove(bsTabGroup);
// relocate rows from tab to owning col