Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java
index 10dbd2766..13d971d82 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java
@@ -108,17 +108,18 @@ public class LaunchManagerProxy extends AbstractModelProxy implements ILaunchesL
*/
protected void installModelProxies(ILaunch[] launches) {
boolean changes = false;
- ModelDelta root = new ModelDelta(fLaunchManager, IModelDelta.NO_CHANGE);
+ ILaunch[] allLaunches = fLaunchManager.getLaunches();
+ ModelDelta root = new ModelDelta(fLaunchManager, 0, IModelDelta.NO_CHANGE, allLaunches.length);
for (int i = 0; i < launches.length; i++) {
ILaunch launch = launches[i];
- ModelDelta launchDelta = root.addNode(launch, IModelDelta.NO_CHANGE);
Object[] children = launch.getChildren();
+ ModelDelta launchDelta = root.addNode(launch, indexOf(launch, allLaunches), IModelDelta.EXPAND | IModelDelta.NO_CHANGE, children.length);
Set set = (Set) fPrevChildren.get(launch);
for (int j = 0; j < children.length; j++) {
Object child = children[j];
if (set.add(child)) {
changes = true;
- launchDelta.addNode(child, IModelDelta.INSTALL);
+ launchDelta.addNode(child, indexOf(child, children), IModelDelta.INSTALL, -1);
}
}
}
@@ -127,6 +128,15 @@ public class LaunchManagerProxy extends AbstractModelProxy implements ILaunchesL
}
}
+ protected int indexOf(Object element, Object[] list) {
+ for (int i = 0; i < list.length; i++) {
+ if (element == list[i]) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
protected void fireDelta(ILaunch[] launches, int launchFlags) {
ModelDelta delta = new ModelDelta(fLaunchManager, IModelDelta.NO_CHANGE);
for (int i = 0; i < launches.length; i++) {

Back to the top