diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java | 66 |
1 files changed, 66 insertions, 0 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 new file mode 100644 index 000000000..b4848c040 --- /dev/null +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/LaunchManagerProxy.java @@ -0,0 +1,66 @@ +package org.eclipse.debug.internal.ui.viewers.update; + +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunch; +import org.eclipse.debug.core.ILaunchManager; +import org.eclipse.debug.core.ILaunchesListener2; +import org.eclipse.debug.internal.ui.viewers.AbstractModelProxy; +import org.eclipse.debug.internal.ui.viewers.IModelDelta; +import org.eclipse.debug.internal.ui.viewers.IModelDeltaNode; +import org.eclipse.debug.internal.ui.viewers.IPresentationContext; + +public class LaunchManagerProxy extends AbstractModelProxy implements ILaunchesListener2 { + + private ILaunchManager fLaunchManager; + + public void init(IPresentationContext context) { + fLaunchManager = DebugPlugin.getDefault().getLaunchManager(); + fLaunchManager.addLaunchListener(this); + } + + public void dispose() { + fLaunchManager.removeLaunchListener(this); + fLaunchManager = null; + } + + public void launchesTerminated(ILaunch[] launches) { + ModelDelta delta = new ModelDelta(); + IModelDeltaNode node = delta.addNode(fLaunchManager, IModelDelta.NOCHANGE); + for (int i = 0; i < launches.length; i++) { + ILaunch launch = launches[i]; + node.addNode(launch, IModelDelta.CHANGED | IModelDelta.CONTENT); + } + fireModelChanged(delta); + } + + public void launchesRemoved(ILaunch[] launches) { + ModelDelta delta = new ModelDelta(); + IModelDeltaNode node = delta.addNode(fLaunchManager, IModelDelta.NOCHANGE); + for (int i = 0; i < launches.length; i++) { + ILaunch launch = launches[i]; + node.addNode(launch, IModelDelta.REMOVED); + } + fireModelChanged(delta); + } + + public void launchesAdded(ILaunch[] launches) { + ModelDelta delta = new ModelDelta(); + IModelDeltaNode node = delta.addNode(fLaunchManager, IModelDelta.NOCHANGE); + for (int i = 0; i < launches.length; i++) { + ILaunch launch = launches[i]; + node.addNode(launch, IModelDelta.ADDED | IModelDelta.EXPAND); + } + fireModelChanged(delta); + } + + public void launchesChanged(ILaunch[] launches) { + ModelDelta delta = new ModelDelta(); + IModelDeltaNode node = delta.addNode(fLaunchManager, IModelDelta.NOCHANGE); + for (int i = 0; i < launches.length; i++) { + ILaunch launch = launches[i]; + node.addNode(launch, IModelDelta.CHANGED | IModelDelta.STATE); + } + fireModelChanged(delta); + } + +} |