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;
}
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.
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()));