diff options
author | Darin Wright | 2007-02-20 16:45:26 +0000 |
---|---|---|
committer | Darin Wright | 2007-02-20 16:45:26 +0000 |
commit | dc8e186e88fc4161b8956ffa7bd525e5116eea1d (patch) | |
tree | c18fdcebdfdc30ed0ae095176df04c4157baced1 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional | |
parent | d1ab4745ae5a6c6a95dfa2075c6768e20960a3f1 (diff) | |
download | eclipse.platform.debug-dc8e186e88fc4161b8956ffa7bd525e5116eea1d.tar.gz eclipse.platform.debug-dc8e186e88fc4161b8956ffa7bd525e5116eea1d.tar.xz eclipse.platform.debug-dc8e186e88fc4161b8956ffa7bd525e5116eea1d.zip |
Bug 174782 firing model delta should notify root delta
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java index 6311232e6..173550f41 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java @@ -73,7 +73,8 @@ public abstract class AbstractModelProxy implements IModelProxy { * * @param delta model delta to broadcast */ - public void fireModelChanged(final IModelDelta delta) { + public void fireModelChanged(IModelDelta delta) { + final IModelDelta root = getRootDelta(delta); Object[] listeners = getListeners(); if (DEBUG_DELTAS) { DebugUIPlugin.debug("FIRE DELTA: " + delta.toString()); //$NON-NLS-1$ @@ -86,13 +87,28 @@ public abstract class AbstractModelProxy implements IModelProxy { } public void run() throws Exception { - listener.modelChanged(delta, AbstractModelProxy.this); + listener.modelChanged(root, AbstractModelProxy.this); } }; SafeRunner.run(safeRunnable); } } + + /** + * Returns the root node of the given delta. + * + * @param delta delta node + * @return returns the root of the given delta + */ + protected IModelDelta getRootDelta(IModelDelta delta) { + IModelDelta parent = delta.getParentDelta(); + while (parent != null) { + delta = parent; + parent = delta.getParentDelta(); + } + return delta; + } /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.viewers.IModelProxy#dispose() |