internal void detach() { KeyboardFocusManager.CurrentKeyboardFocusManager.removePropertyChangeListener(this); if (tree != null) { tree.SelectionModel.removeTreeSelectionListener(this); tree.Model.removeTreeModelListener(this); tree.removeHierarchyBoundsListener(this); tree.removeHierarchyListener(this); tree.removeComponentListener(this); } else { list.SelectionModel.removeListSelectionListener(this); list.Model.removeListDataListener(this); list.removeHierarchyBoundsListener(this); list.removeHierarchyListener(this); list.removeComponentListener(this); } if (null != pane.HorizontalScrollBar) { pane.HorizontalScrollBar.Model.removeChangeListener(this); } if (null != pane.VerticalScrollBar) { pane.VerticalScrollBar.Model.removeChangeListener(this); } detached = true; }