OpenLaunchDialogHander.java
package com.codeaffine.extras.launch.internal.dialog;
import static org.eclipse.jface.window.Window.OK;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchMode;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
public class OpenLaunchDialogHander extends AbstractHandler {
public static final String COMMAND_ID = "com.codeaffine.extras.launch.internal.OpenLaunchDialogCommand";
@Override
public Object execute( ExecutionEvent event ) {
LaunchSelectionDialog dialog = createDialog( event );
if( dialog.open() == OK ) {
startLaunchConfigs( dialog.getLaunchMode(), dialog.getSelectedLaunchConfigurations() );
}
return null;
}
private static void startLaunchConfigs( ILaunchMode launchMode,
ILaunchConfiguration[] launchConfigs )
{
new LaunchConfigStarter( launchMode, launchConfigs ).start();
}
protected LaunchSelectionDialog createDialog( ExecutionEvent event ) {
Shell shell = HandlerUtil.getActiveWorkbenchWindow( event ).getShell();
return new LaunchSelectionDialog( shell );
}
}