blob: 91db2de1602515d99d653b6b0d19de170308edef [file] [log] [blame]
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.CHANGED | IModelDelta.CONTENT);
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);
}
}