Table column headers are not displaying in TableTree in Wicket

148 views Asked by At
private void myTreePage() {
    private final DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("<root>");
    DefaultTreeModel treeModel = new DefaultTreeModel(rootNode);
    statusImport();

            ITreeProvider<DefaultMutableTreeNode> modelProvider = new TreeModelProvider<DefaultMutableTreeNode>(treeModel, false) {
                private static final long serialVersionUID = 1L;
                @Override
                public IModel<DefaultMutableTreeNode> model(DefaultMutableTreeNode object) {
                    return Model.of(object);
                }
            };
            
            TableTree<DefaultMutableTreeNode, String> myTestTree = new TableTree<DefaultMutableTreeNode, String>("myTestTreeTable", createColumns(), modelProvider, Long.MAX_VALUE) {
                private static final long serialVersionUID = 1L;
                @Override
                protected Component newContentComponent(String id, IModel<DefaultMutableTreeNode> model) {
                    //return new CheckedFolder<DefaultMutableTreeNode>(id, this, model);
                    return new Folder<DefaultMutableTreeNode>(id, this, model);
                }
            };
           
            myTestTree.setOutputMarkupId(true);
            myTestTree.add(new WindowsTheme());
            myTestTree.getTable().add(AttributeModifier.replace("style", "width: 100%; background-color:white;"));
            addOrReplace(myTestTree);
}

private List<? extends IColumn<DefaultMutableTreeNode, String>> createColumns() {
    columns.add(new TreeColumn<>(new Model("Tree"), "obj.text"));
    columns.add(new PropertyColumn<>(new Model("FileStatus"), "FileStatus", "obj.fileStatus"));
    columns.add(new PropertyColumn<>(new Model("StartDate"), "StartDate", "obj.startDate"));
    columns.add(new PropertyColumn<>(new Model("LastDate"), "LastDate", "obj.lastDate"));
    columns.add(new PropertyColumn<>(new Model("Count"), "Count", "obj.count"));
    return columns;
}

enter image description here

In tree table view, columns headers are not displaying "Tree", "FileStatus", "StartDate", "LastDate", "Count".

Can anyone help here how to display the Tree table column's header in the Tree table? It will be more appreciable.

1

There are 1 answers

0
user3552342 On BEST ANSWER

I resolved this issue after adding the ToptoolBar and BottomToolBar in TreeTable.

**myTestTree.getTable().addTopToolbar(new HeadersToolbar<String>(treeImport.getTable(), testSortableDataProvider()));
myTestTree.getTable().addBottomToolbar(new NoRecordsToolbar(treeImport.getTable()));**



private ISortableDataProvider<DefaultMutableTreeNode, String> testSortableDataProvider() {
    ISortableDataProvider<DefaultMutableTreeNode, String> ret = new SortableDataProvider<DefaultMutableTreeNode, String>() {
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        @Override
        public Iterator<? extends DefaultMutableTreeNode> iterator(long arg0, long arg1) {
            return null;
        }

        @Override
        public IModel<DefaultMutableTreeNode> model(DefaultMutableTreeNode arg0) {
            return null;
        }

        @Override
        public long size() {
            return 0;
        }
    };
    return ret;
}

If there is a null value in addTopToolbar method then it will not work.

myTestTree.getTable().addTopToolbar(new HeadersToolbar<String>(treeImport.getTable(), null));

So it should be defined with the sortable data provider which will resolve this issue to display the Tree table column header display issue.

myTestTree.getTable().addTopToolbar(new HeadersToolbar<String>(treeImport.getTable(), testSortableDataProvider()));