private void refreshNode(DynamicNode srcNode, DynamicNode parentNode, int index) throws DbException { DynamicNode dstNode = getDynamicNode(parentNode, srcNode.getUserObject(), index); if (dstNode == null) { insertNodeInto(srcNode, parentNode, index); } else { if (dstNode != getChild(parentNode, index)) { removeNodeFromParent(dstNode); insertNodeInto(dstNode, parentNode, index); } if (dstNode.getUserObject() instanceof DynamicNode) { nodeChanged(dstNode); // in case text of primary node has // changed } else if (!dstNode.toString().equals(srcNode.toString()) || dstNode.getIcon() != srcNode.getIcon() || (dstNode.getToolTips() != null && !dstNode.getToolTips().equals(srcNode.getToolTips()))) { dstNode.setDisplayText(srcNode.toString(), srcNode.getEditText()); dstNode.setIcon(srcNode.getIcon()); dstNode.setToolTips(srcNode.getToolTips()); nodeChanged(dstNode); } } }