Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/ui/InspectPopupDialog.java47
1 files changed, 45 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/InspectPopupDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/InspectPopupDialog.java
index f8617c7e5..efbd60c40 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/InspectPopupDialog.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/InspectPopupDialog.java
@@ -18,8 +18,10 @@ import org.eclipse.debug.core.model.IExpression;
import org.eclipse.debug.internal.ui.DebugUIPlugin;
import org.eclipse.debug.internal.ui.SWTFactory;
import org.eclipse.debug.internal.ui.model.elements.ElementContentProvider;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener;
import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
import org.eclipse.debug.internal.ui.views.DebugUIViewsMessages;
@@ -29,7 +31,6 @@ import org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy;
import org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
@@ -134,8 +135,8 @@ public class InspectPopupDialog extends DebugPopup {
}
TreeRoot treeRoot = new TreeRoot();
+ fViewer.addViewerUpdateListener(new ViewerListener(fExpression));
fViewer.setInput(treeRoot);
- fViewer.expandToLevel(new TreePath(new Object[] {fExpression}), 1);
return fTree;
}
@@ -331,5 +332,47 @@ public class InspectPopupDialog extends DebugPopup {
}
}
+
+ private class ViewerListener implements IViewerUpdateListener {
+
+ private Object rootElement;
+
+ ViewerListener(Object root) {
+ rootElement = root;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener#updateComplete(org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
+ */
+ public void updateComplete(IViewerUpdate update) {
+ if (update instanceof IHasChildrenUpdate) {
+ IHasChildrenUpdate hcu = (IHasChildrenUpdate) update;
+ if (hcu.getElement().equals(rootElement)) {
+ fViewer.removeViewerUpdateListener(this);
+ fViewer.expandToLevel(update.getElementPath(), 1);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener#updateStarted(org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
+ */
+ public void updateStarted(IViewerUpdate update) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener#viewerUpdatesBegin()
+ */
+ public void viewerUpdatesBegin() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener#viewerUpdatesComplete()
+ */
+ public void viewerUpdatesComplete() {
+ }
+
+
+ }
}

Back to the top