diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java index a1920ddf61ac68c5de9acc9a9d7d7d8a19bae37e..82220e9a009fa0dc6f059d90126f23826e92f6ff 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java @@ -18,18 +18,12 @@ package org.jkiss.dbeaver.core; -import org.eclipse.core.filesystem.EFS; -import org.eclipse.core.filesystem.IFileStore; -import org.eclipse.core.runtime.CoreException; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.ide.FileStoreEditorInput; -import org.eclipse.ui.ide.IDE; -import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.IInstanceController; +import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.ui.UIUtils; +import org.jkiss.dbeaver.ui.editors.EditorUtils; import org.jkiss.dbeaver.utils.GeneralUtils; import org.jkiss.utils.IOUtils; @@ -66,20 +60,9 @@ public class DBeaverInstanceServer implements IInstanceController { for (String filePath : fileNames) { File file = new File(filePath); if (file.exists()) { - try { - IEditorDescriptor desc = window.getWorkbench().getEditorRegistry().getDefaultEditor(file.getName()); - IFileStore fileStore = EFS.getStore(file.toURI()); - IEditorInput input = new FileStoreEditorInput(fileStore); - IDE.openEditor(window.getActivePage(), input, desc.getId()); - } catch (CoreException e) { - log.error("Can't open editor from file '" + file.getAbsolutePath(), e); - } + EditorUtils.openExternalFileEditor(file, window); } } -// if (!shell.getMinimized()) -// { -// shell.setMinimized(true); -// } shell.setMinimized(false); shell.forceActive(); } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java index 9618c58e3a1fe527609d052347456d6407ce9afa..ae9d00c24b22aff3db6765563e054d8adfb189b1 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java @@ -89,6 +89,7 @@ import org.jkiss.utils.CommonUtils; import java.io.File; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; +import java.net.URI; import java.util.*; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -636,7 +637,12 @@ public class SQLEditor extends SQLEditorBase implements } else if (editorInput instanceof IPathEditorInput) { scriptPath = ((IPathEditorInput) editorInput).getPath().toString(); } else if (editorInput instanceof IURIEditorInput) { - scriptPath = ((IURIEditorInput) editorInput).getURI().toString(); + final URI uri = ((IURIEditorInput) editorInput).getURI(); + if ("file".equals(uri.getScheme())) { + scriptPath = new File(uri).getAbsolutePath(); + } else { + scriptPath = uri.toString(); + } } else { scriptPath = ""; } @@ -649,14 +655,16 @@ public class SQLEditor extends SQLEditorBase implements private String getEditorName() { final IFile file = EditorUtils.getFileFromInput(getEditorInput()); - File localFile = file == null ? EditorUtils.getLocalFileFromInput(getEditorInput()) : null; String scriptName; if (file != null) { scriptName = file.getFullPath().removeFileExtension().lastSegment(); - } else if (localFile != null) { - scriptName = localFile.getName(); } else { - scriptName = ""; + File localFile = EditorUtils.getLocalFileFromInput(getEditorInput()); + if (localFile != null) { + return localFile.getName(); + } else { + scriptName = ""; + } } DBPDataSourceContainer dataSourceContainer = getDataSourceContainer();