WICKET-6095 Multiline headers in DataTable

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ed7c9976
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ed7c9976
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ed7c9976

Branch: refs/heads/lambdas
Commit: ed7c99768ab5764a76d77a1282d28b2f048fd1b8
Parents: 4904e4c
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Feb 18 21:46:44 2016 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Feb 18 21:46:44 2016 +0100

----------------------------------------------------------------------
 .../html/repeater/data/table/HeadersToolbar.java      | 11 ++++++++++-
 .../markup/html/repeater/data/table/IColumn.java      | 14 ++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ed7c9976/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/HeadersToolbar.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/HeadersToolbar.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/HeadersToolbar.java
index 998a9a8..153b5bf 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/HeadersToolbar.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/HeadersToolbar.java
@@ -20,6 +20,7 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.wicket.AttributeModifier;
 import 
org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator;
 import 
org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByBorder;
 import 
org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable.CssAttributeBehavior;
@@ -81,7 +82,7 @@ public class HeadersToolbar<S> extends AbstractToolbar
                        {
                                final IColumn<T, S> column = 
item.getModelObject();
 
-                               WebMarkupContainer header = null;
+                               WebMarkupContainer header;
 
                                if (column.isSortable())
                                {
@@ -108,6 +109,14 @@ public class HeadersToolbar<S> extends AbstractToolbar
                                        header.add(cssAttributeBehavior);
                                }
 
+                               if (column.getColspan() > 1) {
+                                       
header.add(AttributeModifier.replace("colspan", column.getColspan()));
+                               }
+
+                               if (column.getRowspan() > 1) {
+                                       
header.add(AttributeModifier.replace("rowspan", column.getRowspan()));
+                               }
+
                                item.add(header);
                                item.setRenderBodyOnly(true);
                                header.add(column.getHeader("label"));

http://git-wip-us.apache.org/repos/asf/wicket/blob/ed7c9976/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/IColumn.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/IColumn.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/IColumn.java
index 0a257bc..7f3314d 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/IColumn.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/IColumn.java
@@ -57,4 +57,18 @@ public interface IColumn<T, S> extends ICellPopulator<T>
         * @return true if header should be sortable
         */
        boolean isSortable();
+
+       /**
+        * @return The number of rows the header of this column should span
+        */
+       default int getRowspan() {
+               return 1;
+       }
+
+       /**
+        * @return The number of columns the header of this column should span
+        */
+       default int getColspan() {
+               return 1;
+       }
 }

Reply via email to