|
DirectoryTreeTableModel |
Top Previous Next |
DirectoryTreeTableModel is the treetable model that can hold a directory structure. DirectoryTreeTableModel displays the filename, size, type and modifed date of a file or directory. Additionally, the corresponding icon is drawn next to the filename text.
The nodes of a DirectoryTreeTableModel are either HeaderRow (the directories) or DataRow objects (the files). The files inside a directory are retrieved only when that directory is expanded. To ensure that this is done only once, DirectoryTreeTableModel takes advantage of HeaderRow's methods:
public boolean isCountEvaluated();
public void setCountEvaluated(boolean countEval);
NOTE: You can use DefaultSortTreeTableModel and DefaultFilterTreeTableModel in conjunction with DirectoryTreeTableModel to achieve a sorting and filtering effect:
DirectoryTreeTableModel dtm = new DirectoryTreeTableModel();
DefaultFilterTreeTableModel ftm = new DefaultFilterTreeTableModel(dtm);
DefaultSortTreeTableModel stm = new DefaultSortTreeTableModel(ftm);
Extra customization is needed for TreeTable to paint sorting and filtering events:
TreeTable table = new TreeTable();
FilterHeaderModel ft = new CustomPopupFilterHeaderModel();
ft.setFilterMode(ft.ALL_VALUES_MODE);
ft.setTableHeader((com.sciapp.filter.FilterTableHeader) getTableHeader());
ft.attachToTable(table, ftm.getFilterTableModel());
stm.getSortTableModel().setComparator(0, new FileRowComparator());
stm.getSortTableModel().setHeader(getTableHeader());
stm.addReorderListener(table.getTableReorder());
TreeTableModelAdapter newAdapter = new TreeTableModelAdapter(stm, table.getTree());
table.setModel(newAdapter);
DirectoryTreeTable already includes the above customizations for you.