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.