Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawel Piech2011-12-23 23:24:58 +0000
committerPawel Piech2011-12-23 23:24:58 +0000
commit720f9a16ef8703e119f9f1f5bd84a8789b1e91d3 (patch)
tree108fefff07dcac8e9ddf01779292f038dd3d0df4
parent7db98892eac00a07f609e5b064f9067f206b45d1 (diff)
downloadeclipse.platform.debug-720f9a16ef8703e119f9f1f5bd84a8789b1e91d3.tar.gz
eclipse.platform.debug-720f9a16ef8703e119f9f1f5bd84a8789b1e91d3.tar.xz
eclipse.platform.debug-720f9a16ef8703e119f9f1f5bd84a8789b1e91d3.zip
Bug 367105 - [debug view] An empty Debug view has an enabled "Find..." context menu action
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/CollapseAllAction.java13
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsCollapseAllAction.java47
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsExpandAllAction.java62
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java2
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java25
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java130
6 files changed, 206 insertions, 73 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/CollapseAllAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/CollapseAllAction.java
index 8e90c65a4..9f1e25a2f 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/CollapseAllAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/CollapseAllAction.java
@@ -12,18 +12,20 @@ package org.eclipse.debug.internal.ui.actions;
import org.eclipse.debug.internal.ui.DebugPluginImages;
import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.TreePath;
import org.eclipse.ui.handlers.CollapseAllHandler;
+import org.eclipse.ui.texteditor.IUpdate;
/**
* CollapseAllAction
*/
-public class CollapseAllAction extends Action {
+public class CollapseAllAction extends Action implements IUpdate {
- private TreeViewer fViewer;
+ private TreeModelViewer fViewer;
- public CollapseAllAction(TreeViewer viewer) {
+ public CollapseAllAction(TreeModelViewer viewer) {
super(ActionMessages.CollapseAllAction_0, DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_COLLAPSE_ALL));
setToolTipText(ActionMessages.CollapseAllAction_0);
setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_COLLAPSE_ALL));
@@ -39,4 +41,7 @@ public class CollapseAllAction extends Action {
fViewer.collapseAll();
}
+ public void update() {
+ setEnabled( fViewer.getInput() != null && fViewer.getChildCount(TreePath.EMPTY) > 0 );
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsCollapseAllAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsCollapseAllAction.java
index 895e9d6db..26347c5ec 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsCollapseAllAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsCollapseAllAction.java
@@ -11,10 +11,18 @@
*******************************************************************************/
package org.eclipse.debug.internal.ui.actions.breakpoints;
+import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.ITreeModelViewer;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener;
import org.eclipse.debug.ui.AbstractDebugView;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IActionDelegate2;
@@ -26,7 +34,7 @@ import org.eclipse.ui.handlers.IHandlerService;
/**
*
*/
-public class BreakpointsCollapseAllAction implements IViewActionDelegate, IActionDelegate2 {
+public class BreakpointsCollapseAllAction implements IViewActionDelegate, IActionDelegate2, IViewerUpdateListener, IModelChangedListener {
private AbstractDebugView fView;
@@ -41,6 +49,11 @@ public class BreakpointsCollapseAllAction implements IViewActionDelegate, IActio
if (hs != null) {
hs.activateHandler(CollapseAllHandler.COMMAND_ID, new ActionHandler(fAction));
}
+ IInternalTreeModelViewer viewer = (IInternalTreeModelViewer)fView.getViewer();
+ if (viewer != null) {
+ viewer.addViewerUpdateListener(this);
+ viewer.addModelChangedListener(this);
+ }
}
/* (non-Javadoc)
@@ -60,6 +73,11 @@ public class BreakpointsCollapseAllAction implements IViewActionDelegate, IActio
* @see org.eclipse.ui.IActionDelegate2#dispose()
*/
public void dispose() {
+ ITreeModelViewer viewer = (ITreeModelViewer)fView.getViewer();
+ if (viewer != null) {
+ viewer.removeViewerUpdateListener(this);
+ viewer.removeModelChangedListener(this);
+ }
}
/* (non-Javadoc)
@@ -77,4 +95,31 @@ public class BreakpointsCollapseAllAction implements IViewActionDelegate, IActio
run(action);
}
+ public void viewerUpdatesBegin() {
+ }
+
+ public void viewerUpdatesComplete() {
+ }
+
+ public void updateStarted(IViewerUpdate update) {
+ }
+
+ public void updateComplete(IViewerUpdate update) {
+ if (!update.isCanceled()) {
+ if (TreePath.EMPTY.equals(update.getElementPath())) {
+ update();
+ }
+ }
+ }
+
+ private void update() {
+ IInternalTreeModelViewer viewer = (IInternalTreeModelViewer)fView.getViewer();
+ if (viewer != null && fAction != null) {
+ fAction.setEnabled(viewer.getInput() != null && viewer.getChildCount(TreePath.EMPTY) > 0);
+ }
+ }
+
+ public void modelChanged(IModelDelta delta, IModelProxy proxy) {
+ update();
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsExpandAllAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsExpandAllAction.java
index 85620b3b6..4940ae95b 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsExpandAllAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpoints/BreakpointsExpandAllAction.java
@@ -11,26 +11,50 @@
*******************************************************************************/
package org.eclipse.debug.internal.ui.actions.breakpoints;
+import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.ITreeModelViewer;
+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.views.breakpoints.BreakpointsView;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IActionDelegate2;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
/**
* Action which fully expands the tree in the breakpoints view.
*/
-public class BreakpointsExpandAllAction implements IViewActionDelegate {
+public class BreakpointsExpandAllAction implements IViewActionDelegate, IActionDelegate2, IViewerUpdateListener, IModelChangedListener {
+ private IAction fAction;
private BreakpointsView fView;
+ public void init(IAction action) {
+ fAction = action;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
*/
public void init(IViewPart view) {
fView = (BreakpointsView) view;
+ IInternalTreeModelViewer viewer = (IInternalTreeModelViewer)fView.getViewer();
+ if (viewer != null) {
+ viewer.addViewerUpdateListener(this);
+ viewer.addModelChangedListener(this);
+ }
}
+ public void runWithEvent(IAction action, Event event) {
+ run(action);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
@@ -44,4 +68,40 @@ public class BreakpointsExpandAllAction implements IViewActionDelegate {
public void selectionChanged(IAction action, ISelection selection) {
}
+
+ public void dispose() {
+ ITreeModelViewer viewer = (ITreeModelViewer)fView.getViewer();
+ if (viewer != null) {
+ viewer.removeViewerUpdateListener(this);
+ viewer.removeModelChangedListener(this);
+ }
+ }
+
+ public void viewerUpdatesBegin() {
+ }
+
+ public void viewerUpdatesComplete() {
+ }
+
+ public void updateStarted(IViewerUpdate update) {
+ }
+
+ public void updateComplete(IViewerUpdate update) {
+ if (!update.isCanceled()) {
+ if (TreePath.EMPTY.equals(update.getElementPath())) {
+ update();
+ }
+ }
+ }
+
+ private void update() {
+ IInternalTreeModelViewer viewer = (IInternalTreeModelViewer)fView.getViewer();
+ if (viewer != null && fAction != null) {
+ fAction.setEnabled(viewer.getInput() != null && viewer.getChildCount(TreePath.EMPTY) > 0);
+ }
+ }
+
+ public void modelChanged(IModelDelta delta, IModelProxy proxy) {
+ update();
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
index 598d78f69..8ea5d02d8 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
@@ -313,7 +313,7 @@ public class VirtualFindAction extends Action implements IUpdate {
}
public void update() {
- setEnabled(fClientViewer.getInput() != null);
+ setEnabled( fClientViewer.getInput() != null && fClientViewer.getChildCount(TreePath.EMPTY) > 0 );
}
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
index 6234f3208..6983a3188 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
@@ -83,6 +83,7 @@ import org.eclipse.debug.ui.contexts.IDebugContextListener;
import org.eclipse.debug.ui.contexts.IDebugContextProvider;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
@@ -132,10 +133,11 @@ import org.eclipse.ui.part.Page;
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
import org.eclipse.ui.progress.UIJob;
+import org.eclipse.ui.texteditor.IUpdate;
public class LaunchView extends AbstractDebugView
implements ISelectionChangedListener, IPerspectiveListener2, IPageListener, IShowInTarget, IShowInSource,
- IShowInTargetList, IPartListener2, IViewerUpdateListener, IContextManagerListener
+ IShowInTargetList, IPartListener2, IViewerUpdateListener, IContextManagerListener, IModelChangedListener
{
public static final String ID_CONTEXT_ACTIVITY_BINDINGS = "contextActivityBindings"; //$NON-NLS-1$
@@ -861,7 +863,8 @@ public class LaunchView extends AbstractDebugView
fPresentationContext);
viewer.addSelectionChangedListener(fTreeViewerSelectionChangedListener);
- viewer.addViewerUpdateListener(this);
+ viewer.addViewerUpdateListener(this);
+ viewer.addModelChangedListener(this);
viewer.setInput(DebugPlugin.getDefault().getLaunchManager());
//setEventHandler(new LaunchViewEventHandler(this));
@@ -1080,6 +1083,7 @@ public class LaunchView extends AbstractDebugView
if (viewer != null) {
viewer.removeSelectionChangedListener(fTreeViewerSelectionChangedListener);
((TreeModelViewer)viewer).removeViewerUpdateListener(this);
+ ((TreeModelViewer)viewer).removeModelChangedListener(this);
}
if (fPresentationContext != null) {
fPresentationContext.dispose();
@@ -1446,8 +1450,14 @@ public class LaunchView extends AbstractDebugView
* @see org.eclipse.debug.internal.ui.viewers.model.provisional.viewers.IViewerUpdateListener#updateComplete(org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousRequestMonitor)
*/
public void updateComplete(IViewerUpdate update) {
+ if (!update.isCanceled()) {
+ if (TreePath.EMPTY.equals(update.getElementPath())) {
+ updateFindAction();
+ }
+ }
}
+
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.model.provisional.viewers.IViewerUpdateListener#updateStarted(org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousRequestMonitor)
*/
@@ -1476,6 +1486,17 @@ public class LaunchView extends AbstractDebugView
}
}
+ public void modelChanged(IModelDelta delta, IModelProxy proxy) {
+ updateFindAction();
+ }
+
+ private void updateFindAction() {
+ IAction action= getAction(FIND_ACTION);
+ if (action instanceof IUpdate) {
+ ((IUpdate) action).update();
+ }
+ }
+
/**
* Returns whether the breadcrumb viewer is currently visible in the view.
*
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java
index 6d007618b..4f4b4a40c 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java
@@ -25,31 +25,48 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.DelegatingModelPresentation;
+import org.eclipse.debug.internal.ui.IDebugHelpContextIds;
+import org.eclipse.debug.internal.ui.LazyModelPresentation;
+import org.eclipse.debug.internal.ui.SWTFactory;
+import org.eclipse.debug.internal.ui.VariablesViewModelPresentation;
+import org.eclipse.debug.internal.ui.actions.CollapseAllAction;
+import org.eclipse.debug.internal.ui.actions.ConfigureColumnsAction;
+import org.eclipse.debug.internal.ui.actions.variables.ChangeVariableValueAction;
+import org.eclipse.debug.internal.ui.actions.variables.ShowTypesAction;
+import org.eclipse.debug.internal.ui.actions.variables.ToggleDetailPaneAction;
+import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
+import org.eclipse.debug.internal.ui.viewers.model.VirtualFindAction;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputRequestor;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate;
+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.TreeModelViewer;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService;
+import org.eclipse.debug.internal.ui.views.DebugModelPresentationContext;
+import org.eclipse.debug.internal.ui.views.IDebugExceptionHandler;
+import org.eclipse.debug.internal.ui.views.variables.details.AvailableDetailPanesAction;
+import org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy;
+import org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer2;
+import org.eclipse.debug.ui.AbstractDebugView;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.IDebugModelPresentation;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.debug.ui.contexts.DebugContextEvent;
+import org.eclipse.debug.ui.contexts.IDebugContextListener;
+import org.eclipse.debug.ui.contexts.IDebugContextService;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
@@ -71,10 +88,27 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
-
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPerspectiveDescriptor;
@@ -93,48 +127,8 @@ import org.eclipse.ui.handlers.CollapseAllHandler;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
import org.eclipse.ui.progress.UIJob;
-
import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.DelegatingModelPresentation;
-import org.eclipse.debug.internal.ui.IDebugHelpContextIds;
-import org.eclipse.debug.internal.ui.LazyModelPresentation;
-import org.eclipse.debug.internal.ui.SWTFactory;
-import org.eclipse.debug.internal.ui.VariablesViewModelPresentation;
-import org.eclipse.debug.internal.ui.actions.CollapseAllAction;
-import org.eclipse.debug.internal.ui.actions.ConfigureColumnsAction;
-import org.eclipse.debug.internal.ui.actions.variables.ChangeVariableValueAction;
-import org.eclipse.debug.internal.ui.actions.variables.ShowTypesAction;
-import org.eclipse.debug.internal.ui.actions.variables.ToggleDetailPaneAction;
-import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
-import org.eclipse.debug.internal.ui.viewers.model.VirtualFindAction;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputRequestor;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate;
-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.TreeModelViewer;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService;
-import org.eclipse.debug.internal.ui.views.DebugModelPresentationContext;
-import org.eclipse.debug.internal.ui.views.IDebugExceptionHandler;
-import org.eclipse.debug.internal.ui.views.variables.details.AvailableDetailPanesAction;
-import org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy;
-import org.eclipse.debug.internal.ui.views.variables.details.IDetailPaneContainer2;
-
-import org.eclipse.debug.ui.AbstractDebugView;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.debug.ui.contexts.DebugContextEvent;
-import org.eclipse.debug.ui.contexts.IDebugContextListener;
-import org.eclipse.debug.ui.contexts.IDebugContextService;
-
/**
* This view shows variables and their values for a particular stack frame
*/
@@ -480,7 +474,8 @@ public class VariablesView extends AbstractDebugView implements IDebugContextLis
}
showViewer();
- getViewer().setInput(context);
+ getViewer().setInput(context);
+ updateObjects();
}
/**
@@ -922,7 +917,7 @@ public class VariablesView extends AbstractDebugView implements IDebugContextLis
action = new ToggleLogicalStructureAction(this);
setAction("ToggleContentProviders", action); //$NON-NLS-1$
- action = new CollapseAllAction((TreeViewer)getViewer());
+ action = new CollapseAllAction((TreeModelViewer)getViewer());
setAction("CollapseAll", action); //$NON-NLS-1$
IHandlerService hs = (IHandlerService) getSite().getService(IHandlerService.class);
if (hs != null) {
@@ -1369,6 +1364,9 @@ public class VariablesView extends AbstractDebugView implements IDebugContextLis
public void modelChanged(IModelDelta delta, IModelProxy proxy) {
fVisitor.reset();
delta.accept(fVisitor);
+
+ updateAction(VARIABLES_FIND_ELEMENT_ACTION);
+ updateAction("CollapseAll");
}
/* (non-Javadoc)
@@ -1382,6 +1380,10 @@ public class VariablesView extends AbstractDebugView implements IDebugContextLis
} else {
showViewer();
}
+ if (TreePath.EMPTY.equals(update.getElementPath())) {
+ updateAction(VARIABLES_FIND_ELEMENT_ACTION);
+ updateAction("CollapseAll");
+ }
}
}

Back to the top