diff options
-rw-r--r-- | plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java index 311e72610e..6592f3914c 100644 --- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java +++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java @@ -412,7 +412,7 @@ public final class UIUtil ModalContext.run(runnable, true, monitor, PlatformUI.getWorkbench().getDisplay()); } }; - + PlatformUI.getWorkbench().getProgressService().run(false, true, op); } catch (InvocationTargetException ex) @@ -494,6 +494,19 @@ public final class UIUtil { public void run() { + try + { + doRefresh(viewer, element, updateLabels); + } + catch (RuntimeException ex) + { + // An element may have been deactivated - refresh the entire tree + doRefresh(viewer, null, updateLabels); + } + } + + private void doRefresh(final StructuredViewer viewer, final Object element, final boolean updateLabels) + { if (element != null && element != viewer.getInput()) { viewer.refresh(element, updateLabels); |