Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java66
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);
+ }
+
+}

Back to the top