diff --git a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/dialogs/NewLaunchConfigEditPage.java b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/dialogs/NewLaunchConfigEditPage.java index e07ae5ef3fc..5106f560110 100644 --- a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/dialogs/NewLaunchConfigEditPage.java +++ b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/dialogs/NewLaunchConfigEditPage.java @@ -104,7 +104,7 @@ public class NewLaunchConfigEditPage extends WizardPage { if (name.isEmpty()) { return Messages.NewLaunchConfigEditPage_4; } - + ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); if (manager.isExistingLaunchConfigurationName(name)) { ILaunchConfiguration config = ((LaunchManager) manager).findLaunchConfiguration(name); @@ -125,20 +125,19 @@ public class NewLaunchConfigEditPage extends WizardPage { return; try { String initialMode = ((NewLaunchConfigWizard) getWizard()).modePage.selectedGroup.getMode(); - workingCopy = type.newInstance(null, Messages.NewLaunchConfigEditPage_6); + ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); + String name = manager.generateLaunchConfigurationName("launchConfiguration"); //$NON-NLS-1$ + workingCopy = type.newInstance(null, name); tabGroup = LaunchConfigurationPresentationManager.getDefault().getTabGroup(workingCopy, initialMode); for (CTabItem item : tabFolder.getItems()) item.dispose(); LaunchConfigurationsDialog.setCurrentlyVisibleLaunchConfigurationDialog(launchConfigurationDialog); tabGroup.createTabs(launchConfigurationDialog, initialMode); - boolean firstTab = true; + for (ILaunchConfigurationTab tab : tabGroup.getTabs()) { tab.setLaunchConfigurationDialog(launchConfigurationDialog); tab.createControl(tabFolder); tab.setDefaults(workingCopy); - if (firstTab) { - firstTab = false; - } } // Do this after all the tabs have their controls created @@ -164,6 +163,7 @@ public class NewLaunchConfigEditPage extends WizardPage { } } + boolean performFinish() { if (workingCopy == null) return false; @@ -173,6 +173,11 @@ public class NewLaunchConfigEditPage extends WizardPage { return true; } + @Override + public void dispose() { + LaunchConfigurationsDialog.setCurrentlyVisibleLaunchConfigurationDialog(null); + } + public void validateFields() { // page is not complete unless we finish validation successfully setPageComplete(false); @@ -228,6 +233,13 @@ public class NewLaunchConfigEditPage extends WizardPage { return workingCopy; } + @Override + public void launchConfigurationAdded(ILaunchConfiguration configuration) { + if (getLaunchConfiguration() == null) + return; + super.launchConfigurationAdded(configuration); + } + @Override public LaunchGroupExtension getLaunchGroup() { return NewLaunchConfigEditPage.this.getLaunchGroup();