Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2007-02-20 16:45:26 +0000
committerDarin Wright2007-02-20 16:45:26 +0000
commitdc8e186e88fc4161b8956ffa7bd525e5116eea1d (patch)
treec18fdcebdfdc30ed0ae095176df04c4157baced1 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional
parentd1ab4745ae5a6c6a95dfa2075c6768e20960a3f1 (diff)
downloadeclipse.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.java20
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()

Back to the top