diff --git a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseLaunchShortcut.java b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseLaunchShortcut.java index 444bfa072ee6be755f1e25c1b9de72feb1d95779..3b8abe64fdae6be814dcca8a94cc211d74d1e2ff 100644 --- a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseLaunchShortcut.java +++ b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseLaunchShortcut.java @@ -23,11 +23,7 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.Adapters; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationType; -import org.eclipse.debug.core.ILaunchManager; -import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.debug.core.*; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.IDebugModelPresentation; import org.eclipse.debug.ui.ILaunchShortcut2; @@ -43,8 +39,8 @@ import org.eclipse.ui.*; import org.eclipse.ui.dialogs.ElementListSelectionDialog; import org.eclipse.ui.model.WorkbenchLabelProvider; import org.jkiss.dbeaver.Log; +import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.debug.core.DebugCore; -import org.jkiss.dbeaver.debug.ui.internal.DebugLaunchDialogAction; import org.jkiss.dbeaver.debug.ui.internal.DebugUIMessages; import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.runtime.ui.DBUserInterface; @@ -174,10 +170,13 @@ public abstract class DatabaseLaunchShortcut implements ILaunchShortcut2 { } } if (config == null) { - config = createConfiguration(databaseContext); - if (DebugUITools.openLaunchConfigurationPropertiesDialog(DebugUIPlugin.getShell(), config, DebugUI.DEBUG_LAUNCH_GROUP_ID) != IDialogConstants.OK_ID) { + config = createConfiguration(launchable, databaseContext); + if (DebugUITools.openLaunchConfigurationPropertiesDialog(DBeaverUI.getActiveWorkbenchShell(), config, DebugUI.DEBUG_LAUNCH_GROUP_ID) != IDialogConstants.OK_ID) { return; } + if (config instanceof ILaunchConfigurationWorkingCopy) { + ((ILaunchConfigurationWorkingCopy) config).doSave(); + } } if (config != null) { DebugUITools.launch(config, mode); @@ -257,7 +256,7 @@ public abstract class DatabaseLaunchShortcut implements ILaunchShortcut2 { return null; } - protected abstract ILaunchConfiguration createConfiguration(Map databaseContext) throws CoreException; + protected abstract ILaunchConfiguration createConfiguration(DBSObject launchable, Map databaseContext) throws CoreException; @Override public ILaunchConfiguration[] getLaunchConfigurations(ISelection selection) { diff --git a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/internal/DatabaseDebugLaunchShortcut.java b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/internal/DatabaseDebugLaunchShortcut.java index 7cf2663e2ef70d51615663f63fd368d6d87e28ee..cca856d3761f3f52484a24e4fc1eaa62ec416255 100644 --- a/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/internal/DatabaseDebugLaunchShortcut.java +++ b/plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/internal/DatabaseDebugLaunchShortcut.java @@ -20,6 +20,8 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.*; import org.jkiss.dbeaver.debug.core.DebugCore; import org.jkiss.dbeaver.debug.ui.DatabaseLaunchShortcut; +import org.jkiss.dbeaver.model.DBPEvaluationContext; +import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.struct.DBSObject; import java.util.Map; @@ -33,10 +35,10 @@ public class DatabaseDebugLaunchShortcut extends DatabaseLaunchShortcut { } @Override - protected ILaunchConfiguration createConfiguration(Map databaseContext) throws CoreException { + protected ILaunchConfiguration createConfiguration(DBSObject launchable, Map databaseContext) throws CoreException { ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); ILaunchConfigurationType type = manager.getLaunchConfigurationType(CONFIG_TYPE); - ILaunchConfigurationWorkingCopy launchConfig = type.newInstance(null, "Database debug configuration"); + ILaunchConfigurationWorkingCopy launchConfig = type.newInstance(null, DBUtils.getObjectFullName(launchable, DBPEvaluationContext.DML)); if (databaseContext != null) { DebugCore.putContextInConfiguration(launchConfig, databaseContext);