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);

}