A wrapper that reads a TreeTableModel and behaves as a TableModel
| 280 | * A wrapper that reads a TreeTableModel and behaves as a TableModel |
| 281 | */ |
| 282 | class TreeTableModelAdapter extends AbstractTableModel{ |
| 283 | public TreeTableModelAdapter(TreeTableModel treeTableModel) { |
| 284 | tree.addTreeExpansionListener(new TreeExpansionListener() { |
| 285 | // Don't use fireTableRowsInserted() here; |
| 286 | // the selection model would get updated twice. |
| 287 | @Override |
| 288 | public void treeExpanded(TreeExpansionEvent event) { |
| 289 | fireTableDataChanged(); |
| 290 | } |
| 291 | @Override |
| 292 | public void treeCollapsed(TreeExpansionEvent event) { |
| 293 | fireTableDataChanged(); |
| 294 | } |
| 295 | }); |
| 296 | tree.getModel().addTreeModelListener(new TreeModelListener() { |
| 297 | @Override |
| 298 | public void treeNodesChanged(TreeModelEvent e) { |
| 299 | fireTableDataChanged(); |
| 300 | } |
| 301 | @Override |
| 302 | public void treeNodesInserted(TreeModelEvent e) { |
| 303 | fireTableDataChanged(); |
| 304 | } |
| 305 | @Override |
| 306 | public void treeNodesRemoved(TreeModelEvent e) { |
| 307 | fireTableDataChanged(); |
| 308 | } |
| 309 | @Override |
| 310 | public void treeStructureChanged(TreeModelEvent e) { |
| 311 | fireTableDataChanged(); |
| 312 | } |
| 313 | }); |
| 314 | } |
| 315 | |
| 316 | // Wrappers, implementing TableModel interface. |
| 317 | @Override |
| 318 | public int getColumnCount() { |
| 319 | return treeTableModel.getColumnCount(); |
| 320 | } |
| 321 | |
| 322 | @Override |
| 323 | public String getColumnName(int column) { |
| 324 | return treeTableModel.getColumnName(column); |
| 325 | } |
| 326 | |
| 327 | @Override |
| 328 | public Class<?> getColumnClass(int column) { |
| 329 | if(column == 0) return TreeTableModel.class; |
| 330 | else return treeTableModel.getColumnClass(column); |
| 331 | } |
| 332 | |
| 333 | @Override |
| 334 | public int getRowCount() { |
| 335 | return tree.getRowCount(); |
| 336 | } |
| 337 | |
| 338 | protected Object nodeForRow(int row) { |
| 339 | TreePath treePath = tree.getPathForRow(row); |
nothing calls this directly
no outgoing calls
no test coverage detected