MCPcopy Create free account
hub / github.com/PCGen/pcgen / TreeTableModelAdapter

Class TreeTableModelAdapter

code/src/java/pcgen/gui2/util/JTreeTable.java:244–454  ·  view source on GitHub ↗

This is a wrapper class takes a TreeTableModel and implements the table model interface. The implementation is trivial, with all of the event dispatching support provided by the superclass: the AbstractTableModel.

Source from the content-addressed store, hash-verified

242 *
243 */
244 private static class TreeTableModelAdapter extends AbstractTableModel
245 implements SortableTableModel, TreeModelListener, TreeExpansionListener
246 {
247
248 private JTree tree;
249 private TreeTableModel treeTableModel;
250
251 /**
252 * Constructor
253 * @param tree
254 */
255 TreeTableModelAdapter(JTree tree)
256 {
257 this.tree = tree;
258 tree.addTreeExpansionListener(this);
259 }
260
261 /**
262 * Install a TreeModelListener that can update the table when
263 * tree changes. We use delayedFireTableDataChanged as we can
264 * not be guaranteed the tree will have finished processing
265 * the event before us.
266 **/
267 public void setTreeTableModel(TreeTableModel model)
268 {
269 if (treeTableModel != null)
270 {
271 treeTableModel.removeTreeModelListener(this);
272 }
273 treeTableModel = model;
274 if (treeTableModel != null)
275 {
276 treeTableModel.addTreeModelListener(this);
277 }
278 fireTableStructureChanged();
279 }
280
281 @Override
282 public boolean isCellEditable(int row, int column)
283 {
284 if (treeTableModel == null)
285 {
286 return false;
287 }
288 return treeTableModel.isCellEditable(nodeForRow(row), column);
289 }
290
291 @Override
292 public Class<?> getColumnClass(int column)
293 {
294 if (treeTableModel == null)
295 {
296 return Object.class;
297 }
298 return treeTableModel.getColumnClass(column);
299 }
300
301 // Wrappers, implementing TableModel interface.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected