diff --git a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/RemoteLaunchTargetProvider.java b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/RemoteLaunchTargetProvider.java index be61188f102..1f5275e9053 100644 --- a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/RemoteLaunchTargetProvider.java +++ b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/RemoteLaunchTargetProvider.java @@ -71,16 +71,18 @@ public abstract class RemoteLaunchTargetProvider implements ILaunchTargetProvide @Override public void connectionChanged(RemoteConnectionChangeEvent event) { IRemoteConnection connection = event.getConnection(); - switch (event.getType()) { - case RemoteConnectionChangeEvent.CONNECTION_ADDED: - targetManager.addLaunchTarget(getTypeId(), connection.getName()); - break; - case RemoteConnectionChangeEvent.CONNECTION_REMOVED: - ILaunchTarget target = targetManager.getLaunchTarget(getTypeId(), connection.getName()); - if (target != null) { - targetManager.removeLaunchTarget(target); + if (connection.getConnectionType().getId().equals(getTypeId())) { + switch (event.getType()) { + case RemoteConnectionChangeEvent.CONNECTION_ADDED: + targetManager.addLaunchTarget(getTypeId(), connection.getName()); + break; + case RemoteConnectionChangeEvent.CONNECTION_REMOVED: + ILaunchTarget target = targetManager.getLaunchTarget(getTypeId(), connection.getName()); + if (target != null) { + targetManager.removeLaunchTarget(target); + } + break; } - break; } } diff --git a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/LaunchActiveCommandHandler.java b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/LaunchActiveCommandHandler.java index 78e91221edd..25e954978d6 100644 --- a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/LaunchActiveCommandHandler.java +++ b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/LaunchActiveCommandHandler.java @@ -27,6 +27,7 @@ public class LaunchActiveCommandHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { try { LaunchBarManager launchBarManager = Activator.getDefault().getLaunchBarUIManager().getManager(); + StopActiveCommandHandler.stopActiveLaunches(launchBarManager); ILaunchConfiguration config = launchBarManager.getActiveLaunchConfiguration(); if (config == null) return Status.OK_STATUS; diff --git a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/StopActiveCommandHandler.java b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/StopActiveCommandHandler.java index f6a6c3fb1f3..bc7dd66af10 100644 --- a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/StopActiveCommandHandler.java +++ b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/commands/StopActiveCommandHandler.java @@ -29,11 +29,6 @@ import org.eclipse.launchbar.ui.internal.Activator; import org.eclipse.launchbar.ui.internal.Messages; public class StopActiveCommandHandler extends AbstractHandler { - private LaunchBarManager launchBarManager; - - public StopActiveCommandHandler() { - launchBarManager = Activator.getDefault().getLaunchBarUIManager().getManager(); - } @Override public Object execute(ExecutionEvent event) throws ExecutionException { @@ -43,10 +38,10 @@ public class StopActiveCommandHandler extends AbstractHandler { public void stop() { stopBuild(); - stopActiveLaunches(); + stopActiveLaunches(Activator.getDefault().getLaunchBarUIManager().getManager()); } - protected void stopActiveLaunches() { + static void stopActiveLaunches(LaunchBarManager launchBarManager) { final ILaunch[] activeLaunches = DebugPlugin.getDefault().getLaunchManager().getLaunches(); if (activeLaunches != null && activeLaunches.length > 0) { new Job(Messages.StopActiveCommandHandler_0) { @@ -64,8 +59,10 @@ public class StopActiveCommandHandler extends AbstractHandler { continue; } if (launchConfig instanceof ILaunchConfigurationWorkingCopy) { - // There are evil delegates that use a working copy for scratch storage - if (activeConfig.equals(((ILaunchConfigurationWorkingCopy) launchConfig).getOriginal())) { + // There are evil delegates that use a working + // copy for scratch storage + if (activeConfig + .equals(((ILaunchConfigurationWorkingCopy) launchConfig).getOriginal())) { launch.terminate(); continue; }