提交 6b1cc2fa 编写于 作者: S serge-rider

New database configuration create/save

上级 2b8a7aa0
......@@ -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<String, Object> databaseContext) throws CoreException;
protected abstract ILaunchConfiguration createConfiguration(DBSObject launchable, Map<String, Object> databaseContext) throws CoreException;
@Override
public ILaunchConfiguration[] getLaunchConfigurations(ISelection selection) {
......
......@@ -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<String, Object> databaseContext) throws CoreException {
protected ILaunchConfiguration createConfiguration(DBSObject launchable, Map<String, Object> 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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册