public void setModel(TreeModel m) { TreeModel oldVal = this.model; if (model != null && treeModelListener != null) model.removeTreeModelListener(treeModelListener); model = m; treeState.setModel(m); if (model != null) { if (treeModelListener == null) treeModelListener = createTreeModelListener(); if (treeModelListener != null) model.addTreeModelListener(treeModelListener); // Mark the root as expanded, if it isn't a leaf. if (!model.isLeaf(model.getRoot())) treeState.setExpandedState(new TreePath(model.getRoot()), true); fireViewportChanged(false); reload(); } propertyChangeSupport.firePropertyChange("model", oldVal, this.model); }