final Node parent = node.getParent();
if (parent instanceof Refreshable) {
final Viewer viewer = getViewer(node);
final Object firstSelection = Selections.getFirstSelection(viewer);
final String text = node.toString();
Refreshable refreshable = (Refreshable) parent;
refreshable.refresh();
if (viewer != null) {
Viewers.async(new Runnable() {
@Override
public void run() {
if (firstSelection == node) {
selectChild(viewer, parent, text);
} else {
addExpanded(viewer, parent, text);
}
}});
}
} else if (node instanceof Refreshable) {
Refreshable refreshable = (Refreshable) node;
refreshable.refresh();
}
}