diff options
author | Michael Rennie | 2006-06-24 17:05:07 +0000 |
---|---|---|
committer | Michael Rennie | 2006-06-24 17:05:07 +0000 |
commit | 83ac4745000302c86742787642af1844af07cea2 (patch) | |
tree | 601ad64024c2b1d5a56b08d13ddd0c3604f29459 | |
parent | 1b171416b5276f526a35fd6ae61c978ecee4e5bb (diff) | |
download | eclipse.platform.debug-83ac4745000302c86742787642af1844af07cea2.tar.gz eclipse.platform.debug-83ac4745000302c86742787642af1844af07cea2.tar.xz eclipse.platform.debug-83ac4745000302c86742787642af1844af07cea2.zip |
Bug 148247 [launching] Creating launch configuraitons dosen't use the selected class anymore
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java index f820aa107..8ff760981 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/CreateLaunchConfigurationAction.java @@ -15,9 +15,13 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.ui.DebugUITools; +import org.eclipse.debug.ui.ILaunchConfigurationDialog; +import org.eclipse.debug.ui.ILaunchConfigurationTab; +import org.eclipse.debug.ui.ILaunchConfigurationTabGroup; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.Viewer; @@ -45,6 +49,7 @@ public class CreateLaunchConfigurationAction extends AbstractLaunchConfiguration protected void performAction() { Object object = getStructuredSelection().getFirstElement(); ILaunchConfigurationType type= null; + // Construct a new config of the selected type if (object instanceof ILaunchConfiguration) { ILaunchConfiguration config= (ILaunchConfiguration) object; try { @@ -58,7 +63,19 @@ public class CreateLaunchConfigurationAction extends AbstractLaunchConfiguration } try { - type.newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(LaunchConfigurationsMessages.CreateLaunchConfigurationAction_New_configuration_2)).doSave(); + ILaunchConfigurationWorkingCopy wc = type.newInstance(null, DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(LaunchConfigurationsMessages.CreateLaunchConfigurationAction_New_configuration_2)); + ILaunchConfigurationTabGroup tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(wc.getType(), getMode()); + // this only works because this action is only present when the dialog is open + ILaunchConfigurationDialog dialog = LaunchConfigurationsDialog.getCurrentlyVisibleLaunchConfigurationDialog(); + tabGroup.createTabs(dialog, dialog.getMode()); + ILaunchConfigurationTab[] tabs = tabGroup.getTabs(); + for (int i = 0; i < tabs.length; i++) { + ILaunchConfigurationTab tab = tabs[i]; + tab.setLaunchConfigurationDialog(dialog); + } + tabGroup.setDefaults(wc); + tabGroup.dispose(); + wc.doSave(); } catch (CoreException e) { errorDialog(e); return; |