diff -r c89e6ec9fa59 openide.explorer/src/org/openide/explorer/propertysheet/PropertySheet.java --- a/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheet.java Wed Sep 30 18:29:44 2009 +0400 +++ b/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheet.java Wed Oct 07 14:28:38 2009 +0200 @@ -1352,8 +1352,9 @@ Mutex.EVENT.readAccess( new Runnable() { public void run() { - attach(n); - setCurrentNode(n); + if (currNode == n) { + setCurrentNode(n); + } } } ); @@ -1372,9 +1373,11 @@ //XXX SHOULD NOT BE FIRED TO NODELISTENERS Node n = (Node) evt.getSource(); - String description = (String) n.getValue("nodeDescription"); //NOI18N - psheet.setDescription(n.getDisplayName(), (description == null) ? n.getShortDescription() : description); - table.setBeanName(n.getDisplayName()); + if (currNode == n) { + String description = (String) n.getValue("nodeDescription"); //NOI18N + psheet.setDescription(n.getDisplayName(), (description == null) ? n.getShortDescription() : description); + table.setBeanName(n.getDisplayName()); + } } } }; @@ -1395,12 +1398,16 @@ } @Override - public void nodeDestroyed(org.openide.nodes.NodeEvent ev) { - detach(); + public void nodeDestroyed(final org.openide.nodes.NodeEvent ev) { + if (ev.getNode() == currNode) { + detach(); + } Mutex.EVENT.readAccess( new Runnable() { public void run() { - doSetNodes(null); + if (ev.getNode() == currNode) { + doSetNodes(null); + } } } );