|
Getting to the data |
Top Previous Next |
DynamicTreeTableModel builds the tree structure dynamically every time the underlying data changes. To get from the "tree-view" to the original data model provided by the underlying ListTableModel, you can use the following method:
public int getDataRow(TreeTableRow node);
The above method assumes that node is a DataRow (no-children). In order to retrieve the indexes for HeaderRows, use:
public int[] getDataRows(TreeTableRow node);
public int[] getModelIndexesUnderRow(TreeTableRow node, boolean sorted);
Example 1: Find the objects that correspond to a treetable's row selection. (using the user object of the tree node)
//table is a TreeTable
int[] selectedRows = table.getSelectedRows();
TreeTableModelAdapter adapter = (TreeTableModelAdapter) table.getModel();
List treeList = ttm.getRows();
for (int i=0;i<selectedRows.length;i++) {
TreeTableRow treeRow = (TreeTableRow) adapter.nodeForRow(selectedRows[i]);
Object objectRow = treeRow.getUserObject();
}
Example 2: Find the objects that correspond to a treetable's row selection. (using the underlying ListTableModel)
//table is the TreeTable model
int[] selectedRows = table.getSelectedRows();
TreeTableModelAdapter adapter = (TreeTableModelAdapter) table.getModel();
DynamicTreeTableModel ttm = (DynamicTreeTableModel) adapter.getTreeTableModel();
ListTableModel wrappedModel = ttm.getModel();
for (int i=0;i<selectedRows.length;i++) {
int origIndex = ttm.getDataRow(selectedRows[i]);
Onject objectRow = wrappedModel.getRows().get(origIndex);
}