diff options
author | Mike Rennie | 2013-01-22 19:26:50 +0000 |
---|---|---|
committer | Mike Rennie | 2013-01-22 19:26:50 +0000 |
commit | 29e2f9786c3b279bbaf7b7b01696eddabfb2940c (patch) | |
tree | 7eb532306be1f81f8106aa4bc508a73012e9832a | |
parent | 74573dd6051f576108bc315f1fdc478fb3f5ebb3 (diff) | |
download | eclipse.platform.debug-29e2f9786c3b279bbaf7b7b01696eddabfb2940c.tar.gz eclipse.platform.debug-29e2f9786c3b279bbaf7b7b01696eddabfb2940c.tar.xz eclipse.platform.debug-29e2f9786c3b279bbaf7b7b01696eddabfb2940c.zip |
Bug 380614 - Breakpoints view does not refresh when new breakpoint is
added to Others Category
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java index b95ffa248..dd6d1d455 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java @@ -1360,13 +1360,34 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon } protected void handleInsert(IModelDelta delta) { - // TODO: filters IModelDelta parentDelta = delta.getParentDelta(); if (parentDelta == null) { DebugUIPlugin.log(new Status(IStatus.ERROR, DebugUIPlugin.getUniqueIdentifier(), "Invalid viewer update: " + delta + ", in " + getPresentationContext().getId(), null )); //$NON-NLS-1$ //$NON-NLS-2$ return; } - getViewer().insert(getViewerTreePath(parentDelta), delta.getElement(), delta.getIndex()); + + TreePath parentPath = getViewerTreePath(delta.getParentDelta()); + Object element = delta.getElement(); + int modelIndex = delta.getIndex(); + if (modelIndex >= 0) { + int viewIndex = modelToViewIndex(parentPath, modelIndex); + if (viewIndex >= 0) { + if (DebugUIPlugin.DEBUG_CONTENT_PROVIDER && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { + DebugUIPlugin.trace("handleInsert(" + parentPath.getLastSegment() + ", (model) " + modelIndex + " (view) " + viewIndex + ", " + element); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + getViewer().insert(parentPath, element, viewIndex); + } else { + if (DebugUIPlugin.DEBUG_CONTENT_PROVIDER && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { + DebugUIPlugin.trace("[filtered] handleInsert(" + delta.getElement() + ") > modelIndex: " + modelIndex); //$NON-NLS-1$ //$NON-NLS-2$ + } + // Element is filtered - do not insert + } + } else { + if (DebugUIPlugin.DEBUG_CONTENT_PROVIDER && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { + DebugUIPlugin.trace("handleInsert(" + delta.getElement() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ + } + doUpdateChildCount(getViewerTreePath(delta.getParentDelta())); + } } protected void handleRemove(IModelDelta delta) { |