Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
da016f74
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
da016f74
编写于
9月 20, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SQL editor command handlers refactoring
上级
5361b2b8
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
286 addition
and
259 deletion
+286
-259
plugins/org.jkiss.dbeaver.core/plugin.properties
plugins/org.jkiss.dbeaver.core/plugin.properties
+4
-0
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+19
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
...dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
+3
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/AbstractDataSourceHandler.java
...g/jkiss/dbeaver/ui/actions/AbstractDataSourceHandler.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
...rg/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java
...s/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLSourceViewer.java
...src/org/jkiss/dbeaver/ui/editors/sql/SQLSourceViewer.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
...dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
+0
-97
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
...rg/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
+244
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenNewSQLEditorHandler.java
...aver/ui/editors/sql/handlers/OpenNewSQLEditorHandler.java
+0
-105
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenRecentSQLEditorHandler.java
...r/ui/editors/sql/handlers/OpenRecentSQLEditorHandler.java
+0
-43
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/NavigatorViewBase.java
...kiss/dbeaver/ui/navigator/database/NavigatorViewBase.java
+9
-4
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.properties
浏览文件 @
da016f74
...
...
@@ -111,6 +111,10 @@ command.org.jkiss.dbeaver.ui.editors.sql.run.count.name=Select row count for que
command.org.jkiss.dbeaver.ui.editors.sql.run.count.description
=
Select row count for query under cursor
command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name
=
Explain Execution Plan
command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description
=
Explain execution plan
command.org.jkiss.dbeaver.ui.editors.sql.query.next.name
=
Next query
command.org.jkiss.dbeaver.ui.editors.sql.query.next.description
=
Switch to the next query
command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name
=
Previous query
command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description
=
Switch to the previous query
command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name
=
Toggle results panel
command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name
=
Switch active panel
command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description
=
Switch active SQL editor panel
...
...
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
da016f74
...
...
@@ -225,6 +225,8 @@
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.run.scriptNew"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.run.explain"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.run.count"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.count.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.run.count.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.query.next"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.query.next.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.query.next.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.query.prev"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.switch.panel"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
<command
id=
"org.jkiss.dbeaver.ui.editors.sql.open.file"
name=
"%command.org.jkiss.dbeaver.ui.editors.sql.open.file.name"
description=
"%command.org.jkiss.dbeaver.ui.editors.sql.open.file.description"
categoryId=
"org.jkiss.dbeaver.core.sql"
/>
...
...
@@ -830,7 +832,7 @@
</activeWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.open"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.Open
SQLEditor
Handler"
>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.open"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler"
>
<activeWhen>
<or>
<reference
definitionId=
"org.jkiss.dbeaver.core.ui.navigator.part"
/>
...
...
@@ -843,10 +845,10 @@
</with>
</enabledWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.recent"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.Open
RecentSQLEditor
Handler"
>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.recent"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler"
>
<activeWhen><reference
definitionId=
"org.jkiss.dbeaver.core.ui.navigator.part"
/></activeWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.create"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.Open
NewSQLEditor
Handler"
>
<handler
commandId=
"org.jkiss.dbeaver.core.sql.editor.create"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler"
>
<enabledWhen>
<with
variable=
"activePart"
>
<test
property=
"org.jkiss.dbeaver.core.global.hasActiveProject"
/>
...
...
@@ -901,6 +903,20 @@
</with>
</enabledWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.ui.editors.sql.query.next"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.ExecuteHandler"
>
<enabledWhen>
<with
variable=
"activeEditor"
>
<instanceof
value=
"org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase"
/>
</with>
</enabledWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.ui.editors.sql.query.prev"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.ExecuteHandler"
>
<enabledWhen>
<with
variable=
"activeEditor"
>
<instanceof
value=
"org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase"
/>
</with>
</enabledWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.ToggleResultsPanelHandler"
>
<enabledWhen>
<with
variable=
"activeEditor"
>
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
浏览文件 @
da016f74
...
...
@@ -51,6 +51,9 @@ public interface CoreCommands
String
CMD_ROLLBACK
=
"org.jkiss.dbeaver.core.rollback"
;
String
CMD_SQL_EDITOR_OPEN
=
"org.jkiss.dbeaver.core.sql.editor.open"
;
String
CMD_SQL_EDITOR_NEW
=
"org.jkiss.dbeaver.core.sql.editor.create"
;
String
CMD_SQL_EDITOR_RECENT
=
"org.jkiss.dbeaver.core.sql.editor.recent"
;
String
CMD_LINK_EDITOR
=
"org.jkiss.dbeaver.core.navigator.linkeditor"
;
String
CMD_SYNC_CONNECTION
=
"org.jkiss.dbeaver.ui.editors.sql.sync.connection"
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/AbstractDataSourceHandler.java
浏览文件 @
da016f74
...
...
@@ -66,7 +66,7 @@ public abstract class AbstractDataSourceHandler extends AbstractHandler {
return
null
;
}
protected
DBPDataSourceContainer
getDataSourceContainer
(
ExecutionEvent
event
,
boolean
useEditor
)
protected
static
DBPDataSourceContainer
getDataSourceContainer
(
ExecutionEvent
event
,
boolean
useEditor
)
{
if
(
useEditor
)
{
IEditorPart
editor
=
HandlerUtil
.
getActiveEditor
(
event
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
浏览文件 @
da016f74
...
...
@@ -63,7 +63,7 @@ import org.jkiss.dbeaver.registry.DataSourceRegistry;
import
org.jkiss.dbeaver.runtime.qm.DefaultEventFilter
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.dialogs.sql.BaseSQLDialog
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.Open
NewSQLEditor
Handler
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.utils.CommonUtils
;
import
org.jkiss.utils.LongKeyMap
;
...
...
@@ -786,7 +786,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
}
}
if
(
sql
.
length
()
>
0
)
{
Open
NewSQLEditor
Handler
.
openSQLConsole
(
OpenHandler
.
openSQLConsole
(
DBeaverUI
.
getActiveWorkbenchWindow
(),
dsContainer
,
"QueryManager"
,
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java
浏览文件 @
da016f74
...
...
@@ -61,7 +61,7 @@ import org.jkiss.dbeaver.ui.controls.StyledTextContentAdapter;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.SubEditorSite
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.Open
NewSQLEditor
Handler
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLCompletionProcessor
;
import
org.jkiss.dbeaver.ui.editors.sql.syntax.SQLWordPartDetector
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
...
...
@@ -521,7 +521,7 @@ class ResultSetFilterPanel extends Composite implements IContentProposalProvider
}
else
{
editorName
=
"Query"
;
}
Open
NewSQLEditor
Handler
.
openSQLConsole
(
OpenHandler
.
openSQLConsole
(
DBeaverUI
.
getActiveWorkbenchWindow
(),
dataContainer
==
null
?
null
:
dataContainer
.
getDataSource
().
getContainer
(),
editorName
,
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLSourceViewer.java
浏览文件 @
da016f74
...
...
@@ -27,7 +27,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.Open
NewSQLEditor
Handler
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler
;
/**
* Display Source text (Read Only)
...
...
@@ -39,7 +39,7 @@ public class SQLSourceViewer<T extends DBPScriptObject & DBSObject> extends SQLE
public
void
run
()
{
final
DBPDataSource
dataSource
=
getDataSource
();
Open
NewSQLEditor
Handler
.
openSQLConsole
(
OpenHandler
.
openSQLConsole
(
DBeaverUI
.
getActiveWorkbenchWindow
(),
dataSource
==
null
?
null
:
dataSource
.
getContainer
(),
"Source"
,
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
已删除
100644 → 0
浏览文件 @
5361b2b8
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.Log
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.registry.ProjectRegistry
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.dialogs.connection.SelectDataSourceDialog
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
public
abstract
class
BaseSQLEditorHandler
extends
AbstractDataSourceHandler
{
private
static
final
Log
log
=
Log
.
getLog
(
BaseSQLEditorHandler
.
class
);
@Nullable
protected
DBPDataSourceContainer
getCurrentConnection
(
ExecutionEvent
event
)
{
DBPDataSourceContainer
dataSourceContainer
=
getDataSourceContainer
(
event
,
false
);
final
ProjectRegistry
projectRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
();
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
projectRegistry
.
getActiveProject
();
if
(
dataSourceContainer
==
null
)
{
final
DataSourceRegistry
dataSourceRegistry
=
projectRegistry
.
getDataSourceRegistry
(
project
);
if
(
dataSourceRegistry
==
null
)
{
return
null
;
}
if
(
dataSourceRegistry
.
getDataSources
().
size
()
==
1
)
{
dataSourceContainer
=
dataSourceRegistry
.
getDataSources
().
get
(
0
);
}
else
if
(!
dataSourceRegistry
.
getDataSources
().
isEmpty
())
{
dataSourceContainer
=
SelectDataSourceDialog
.
selectDataSource
(
HandlerUtil
.
getActiveShell
(
event
),
project
);
}
}
return
dataSourceContainer
;
}
@Nullable
protected
IFolder
getCurrentFolder
(
ExecutionEvent
event
)
{
final
ISelection
selection
=
HandlerUtil
.
getCurrentSelection
(
event
);
if
(
selection
!=
null
&&
!
selection
.
isEmpty
()
&&
selection
instanceof
IStructuredSelection
)
{
final
Object
element
=
((
IStructuredSelection
)
selection
).
getFirstElement
();
if
(
element
instanceof
DBNResource
&&
((
DBNResource
)
element
).
getResource
()
instanceof
IFolder
)
{
return
(
IFolder
)
((
DBNResource
)
element
).
getResource
();
}
}
return
null
;
}
public
static
void
openRecentScript
(
@NotNull
IWorkbenchWindow
workbenchWindow
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
,
@Nullable
IFolder
scriptFolder
)
{
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
try
{
ResourceUtils
.
ResourceInfo
res
=
ResourceUtils
.
findRecentScript
(
project
,
dataSourceContainer
);
if
(
res
!=
null
)
{
NavigatorHandlerObjectOpen
.
openResourceEditor
(
workbenchWindow
,
res
);
}
else
{
IFile
scriptFile
=
ResourceUtils
.
createNewScript
(
project
,
scriptFolder
,
dataSourceContainer
);
NavigatorHandlerObjectOpen
.
openResource
(
scriptFile
,
workbenchWindow
);
}
}
catch
(
CoreException
e
)
{
log
.
error
(
e
);
}
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/Open
SQLEditor
Handler.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
浏览文件 @
da016f74
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPContextProvider
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProvider
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNLocalFolder
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.controls.ScriptSelectorPanel
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils.ResourceInfo
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
OpenSQLEditorHandler
extends
BaseSQLEditorHandler
{
private
static
final
Log
log
=
Log
.
getLog
(
OpenSQLEditorHandler
.
class
);
@Nullable
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
List
<
DBPDataSourceContainer
>
containers
=
getDataSourceContainers
(
event
);
IWorkbenchWindow
workbenchWindow
=
HandlerUtil
.
getActiveWorkbenchWindow
(
event
);
IProject
project
=
!
containers
.
isEmpty
()
?
containers
.
get
(
0
).
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
final
DBPDataSourceContainer
[]
containerList
=
containers
.
toArray
(
new
DBPDataSourceContainer
[
containers
.
size
()]);
try
{
final
IFolder
rootFolder
=
ResourceUtils
.
getScriptsFolder
(
project
,
false
);
final
List
<
ResourceInfo
>
scriptTree
=
ResourceUtils
.
findScriptTree
(
rootFolder
,
containerList
.
length
==
0
?
null
:
containerList
);
if
(
scriptTree
.
isEmpty
()
&&
containerList
.
length
==
1
)
{
// Create new script
final
IFile
newScript
=
ResourceUtils
.
createNewScript
(
project
,
rootFolder
,
containers
.
isEmpty
()
?
null
:
containers
.
get
(
0
));
NavigatorHandlerObjectOpen
.
openResource
(
newScript
,
workbenchWindow
);
}
else
{
// Show script chooser
ScriptSelectorPanel
selector
=
new
ScriptSelectorPanel
(
workbenchWindow
,
containerList
,
rootFolder
);
selector
.
showTree
(
scriptTree
);
}
}
catch
(
CoreException
e
)
{
log
.
error
(
e
);
}
return
null
;
}
protected
List
<
DBPDataSourceContainer
>
getDataSourceContainers
(
ExecutionEvent
event
)
{
List
<
DBPDataSourceContainer
>
containers
=
new
ArrayList
<>();
ISelection
selection
=
HandlerUtil
.
getCurrentSelection
(
event
);
if
(
selection
instanceof
IStructuredSelection
)
{
for
(
Object
obj
:
((
IStructuredSelection
)
selection
).
toArray
())
{
if
(
obj
instanceof
DBNLocalFolder
)
{
for
(
DBNDataSource
ds
:
((
DBNLocalFolder
)
obj
).
getDataSources
())
{
containers
.
add
(
ds
.
getDataSourceContainer
());
}
}
else
{
DBSObject
selectedObject
=
DBUtils
.
getFromObject
(
obj
);
if
(
selectedObject
!=
null
)
{
if
(
selectedObject
instanceof
DBPDataSourceContainer
)
{
containers
.
add
((
DBPDataSourceContainer
)
selectedObject
);
}
else
{
containers
.
add
(
selectedObject
.
getDataSource
().
getContainer
());
}
}
}
}
}
if
(
containers
.
isEmpty
())
{
IWorkbenchPart
activePart
=
HandlerUtil
.
getActivePart
(
event
);
DBPDataSourceContainer
partContainer
=
getDataSourceContainers
(
activePart
);
if
(
partContainer
!=
null
)
{
containers
.
add
(
partContainer
);
}
}
return
containers
;
}
public
static
DBPDataSourceContainer
getDataSourceContainers
(
IWorkbenchPart
activePart
)
{
if
(
activePart
instanceof
IDataSourceContainerProvider
)
{
return
((
IDataSourceContainerProvider
)
activePart
).
getDataSourceContainer
();
}
if
(
activePart
instanceof
DBPContextProvider
)
{
DBCExecutionContext
context
=
((
DBPContextProvider
)
activePart
).
getExecutionContext
();
return
context
==
null
?
null
:
context
.
getDataSource
().
getContainer
();
}
return
null
;
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.PartInitException
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreCommands
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPContextProvider
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProvider
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNLocalFolder
;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.registry.ProjectRegistry
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.controls.ScriptSelectorPanel
;
import
org.jkiss.dbeaver.ui.dialogs.connection.SelectDataSourceDialog
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditor
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
OpenHandler
extends
AbstractDataSourceHandler
{
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
String
actionId
=
event
.
getCommand
().
getId
();
try
{
switch
(
actionId
)
{
case
CoreCommands
.
CMD_SQL_EDITOR_OPEN
:
openEditor
(
event
);
break
;
case
CoreCommands
.
CMD_SQL_EDITOR_NEW
:
openNewEditor
(
event
);
break
;
case
CoreCommands
.
CMD_SQL_EDITOR_RECENT
:
openRecentEditor
(
event
);
break
;
}
}
catch
(
CoreException
e
)
{
UIUtils
.
showErrorDialog
(
HandlerUtil
.
getActiveShell
(
event
),
"Open editor"
,
"Can execute command '"
+
actionId
+
"'"
,
e
);
}
return
null
;
}
private
static
void
openEditor
(
ExecutionEvent
event
)
throws
ExecutionException
,
CoreException
{
List
<
DBPDataSourceContainer
>
containers
=
getDataSourceContainers
(
event
);
IWorkbenchWindow
workbenchWindow
=
HandlerUtil
.
getActiveWorkbenchWindow
(
event
);
IProject
project
=
!
containers
.
isEmpty
()
?
containers
.
get
(
0
).
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
final
DBPDataSourceContainer
[]
containerList
=
containers
.
toArray
(
new
DBPDataSourceContainer
[
containers
.
size
()]);
final
IFolder
rootFolder
=
ResourceUtils
.
getScriptsFolder
(
project
,
false
);
final
List
<
ResourceUtils
.
ResourceInfo
>
scriptTree
=
ResourceUtils
.
findScriptTree
(
rootFolder
,
containerList
.
length
==
0
?
null
:
containerList
);
if
(
scriptTree
.
isEmpty
()
&&
containerList
.
length
==
1
)
{
// Create new script
final
IFile
newScript
=
ResourceUtils
.
createNewScript
(
project
,
rootFolder
,
containers
.
isEmpty
()
?
null
:
containers
.
get
(
0
));
NavigatorHandlerObjectOpen
.
openResource
(
newScript
,
workbenchWindow
);
}
else
{
// Show script chooser
ScriptSelectorPanel
selector
=
new
ScriptSelectorPanel
(
workbenchWindow
,
containerList
,
rootFolder
);
selector
.
showTree
(
scriptTree
);
}
}
private
static
boolean
openNewEditor
(
ExecutionEvent
event
)
throws
CoreException
{
IWorkbenchWindow
workbenchWindow
=
HandlerUtil
.
getActiveWorkbenchWindow
(
event
);
DBPDataSourceContainer
dataSourceContainer
=
getCurrentConnection
(
event
);
IFolder
scriptFolder
=
getCurrentFolder
(
event
);
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
IFile
scriptFile
=
ResourceUtils
.
createNewScript
(
project
,
scriptFolder
,
dataSourceContainer
);
NavigatorHandlerObjectOpen
.
openResource
(
scriptFile
,
workbenchWindow
);
return
true
;
}
private
static
void
openRecentEditor
(
ExecutionEvent
event
)
throws
ExecutionException
,
CoreException
{
DBPDataSourceContainer
dataSourceContainer
=
getCurrentConnection
(
event
);
if
(
dataSourceContainer
==
null
)
{
return
;
}
openRecentScript
(
HandlerUtil
.
getActiveWorkbenchWindow
(
event
),
dataSourceContainer
,
null
);
}
@Nullable
private
static
DBPDataSourceContainer
getCurrentConnection
(
ExecutionEvent
event
)
{
DBPDataSourceContainer
dataSourceContainer
=
getDataSourceContainer
(
event
,
false
);
final
ProjectRegistry
projectRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
();
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
projectRegistry
.
getActiveProject
();
if
(
dataSourceContainer
==
null
)
{
final
DataSourceRegistry
dataSourceRegistry
=
projectRegistry
.
getDataSourceRegistry
(
project
);
if
(
dataSourceRegistry
==
null
)
{
return
null
;
}
if
(
dataSourceRegistry
.
getDataSources
().
size
()
==
1
)
{
dataSourceContainer
=
dataSourceRegistry
.
getDataSources
().
get
(
0
);
}
else
if
(!
dataSourceRegistry
.
getDataSources
().
isEmpty
())
{
dataSourceContainer
=
SelectDataSourceDialog
.
selectDataSource
(
HandlerUtil
.
getActiveShell
(
event
),
project
);
}
}
return
dataSourceContainer
;
}
@Nullable
private
static
IFolder
getCurrentFolder
(
ExecutionEvent
event
)
{
final
ISelection
selection
=
HandlerUtil
.
getCurrentSelection
(
event
);
if
(
selection
!=
null
&&
!
selection
.
isEmpty
()
&&
selection
instanceof
IStructuredSelection
)
{
final
Object
element
=
((
IStructuredSelection
)
selection
).
getFirstElement
();
if
(
element
instanceof
DBNResource
&&
((
DBNResource
)
element
).
getResource
()
instanceof
IFolder
)
{
return
(
IFolder
)
((
DBNResource
)
element
).
getResource
();
}
}
return
null
;
}
private
static
List
<
DBPDataSourceContainer
>
getDataSourceContainers
(
ExecutionEvent
event
)
{
List
<
DBPDataSourceContainer
>
containers
=
new
ArrayList
<>();
ISelection
selection
=
HandlerUtil
.
getCurrentSelection
(
event
);
if
(
selection
instanceof
IStructuredSelection
)
{
for
(
Object
obj
:
((
IStructuredSelection
)
selection
).
toArray
())
{
if
(
obj
instanceof
DBNLocalFolder
)
{
for
(
DBNDataSource
ds
:
((
DBNLocalFolder
)
obj
).
getDataSources
())
{
containers
.
add
(
ds
.
getDataSourceContainer
());
}
}
else
{
DBSObject
selectedObject
=
DBUtils
.
getFromObject
(
obj
);
if
(
selectedObject
!=
null
)
{
if
(
selectedObject
instanceof
DBPDataSourceContainer
)
{
containers
.
add
((
DBPDataSourceContainer
)
selectedObject
);
}
else
{
containers
.
add
(
selectedObject
.
getDataSource
().
getContainer
());
}
}
}
}
}
if
(
containers
.
isEmpty
())
{
IWorkbenchPart
activePart
=
HandlerUtil
.
getActivePart
(
event
);
DBPDataSourceContainer
partContainer
=
getDataSourceContainers
(
activePart
);
if
(
partContainer
!=
null
)
{
containers
.
add
(
partContainer
);
}
}
return
containers
;
}
private
static
DBPDataSourceContainer
getDataSourceContainers
(
IWorkbenchPart
activePart
)
{
if
(
activePart
instanceof
IDataSourceContainerProvider
)
{
return
((
IDataSourceContainerProvider
)
activePart
).
getDataSourceContainer
();
}
if
(
activePart
instanceof
DBPContextProvider
)
{
DBCExecutionContext
context
=
((
DBPContextProvider
)
activePart
).
getExecutionContext
();
return
context
==
null
?
null
:
context
.
getDataSource
().
getContainer
();
}
return
null
;
}
public
static
void
openRecentScript
(
@NotNull
IWorkbenchWindow
workbenchWindow
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
,
@Nullable
IFolder
scriptFolder
)
throws
CoreException
{
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
ResourceUtils
.
ResourceInfo
res
=
ResourceUtils
.
findRecentScript
(
project
,
dataSourceContainer
);
if
(
res
!=
null
)
{
NavigatorHandlerObjectOpen
.
openResourceEditor
(
workbenchWindow
,
res
);
}
else
{
IFile
scriptFile
=
ResourceUtils
.
createNewScript
(
project
,
scriptFolder
,
dataSourceContainer
);
NavigatorHandlerObjectOpen
.
openResource
(
scriptFile
,
workbenchWindow
);
}
}
public
static
void
openSQLConsole
(
IWorkbenchWindow
workbenchWindow
,
DBPDataSourceContainer
dataSourceContainer
,
String
name
,
String
sqlText
)
{
StringEditorInput
sqlInput
=
new
StringEditorInput
(
name
,
sqlText
,
false
,
ContentUtils
.
DEFAULT_CHARSET
);
EditorUtils
.
setInputDataSource
(
sqlInput
,
dataSourceContainer
,
false
);
openSQLEditor
(
workbenchWindow
,
sqlInput
);
}
public
static
void
openSQLEditor
(
IWorkbenchWindow
workbenchWindow
,
IEditorInput
sqlInput
)
{
try
{
workbenchWindow
.
getActivePage
().
openEditor
(
sqlInput
,
SQLEditor
.
class
.
getName
());
}
catch
(
PartInitException
e
)
{
UIUtils
.
showErrorDialog
(
workbenchWindow
.
getShell
(),
"Can't open editor"
,
null
,
e
);
}
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenNewSQLEditorHandler.java
已删除
100644 → 0
浏览文件 @
5361b2b8
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.PartInitException
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditor
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.utils.CommonUtils
;
public
class
OpenNewSQLEditorHandler
extends
BaseSQLEditorHandler
{
private
static
final
Log
log
=
Log
.
getLog
(
OpenNewSQLEditorHandler
.
class
);
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
IWorkbenchWindow
workbenchWindow
=
HandlerUtil
.
getActiveWorkbenchWindow
(
event
);
DBPDataSourceContainer
dataSourceContainer
=
getCurrentConnection
(
event
);
IFolder
scriptFolder
=
getCurrentFolder
(
event
);
openNewSQLEditor
(
workbenchWindow
,
dataSourceContainer
,
scriptFolder
,
null
);
return
null
;
}
private
boolean
openNewSQLEditor
(
IWorkbenchWindow
workbenchWindow
,
DBPDataSourceContainer
dataSourceContainer
,
IFolder
scriptFolder
,
String
sqlText
)
{
IProject
project
=
dataSourceContainer
!=
null
?
dataSourceContainer
.
getRegistry
().
getProject
()
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
IFile
scriptFile
;
try
{
scriptFile
=
ResourceUtils
.
createNewScript
(
project
,
scriptFolder
,
dataSourceContainer
);
}
catch
(
CoreException
e
)
{
log
.
error
(
e
);
return
false
;
}
if
(!
CommonUtils
.
isEmpty
(
sqlText
))
{
//scriptFile.setContents();
}
NavigatorHandlerObjectOpen
.
openResource
(
scriptFile
,
workbenchWindow
);
return
true
;
}
public
static
void
openSQLConsole
(
IWorkbenchWindow
workbenchWindow
,
DBPDataSourceContainer
dataSourceContainer
,
String
name
,
String
sqlText
)
{
StringEditorInput
sqlInput
=
new
StringEditorInput
(
name
,
sqlText
,
false
,
ContentUtils
.
DEFAULT_CHARSET
);
EditorUtils
.
setInputDataSource
(
sqlInput
,
dataSourceContainer
,
false
);
openSQLEditor
(
workbenchWindow
,
sqlInput
);
}
public
static
void
openSQLEditor
(
IWorkbenchWindow
workbenchWindow
,
IEditorInput
sqlInput
)
{
try
{
workbenchWindow
.
getActivePage
().
openEditor
(
sqlInput
,
SQLEditor
.
class
.
getName
());
}
catch
(
PartInitException
e
)
{
UIUtils
.
showErrorDialog
(
workbenchWindow
.
getShell
(),
"Can't open editor"
,
null
,
e
);
}
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenRecentSQLEditorHandler.java
已删除
100644 → 0
浏览文件 @
5361b2b8
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
public
class
OpenRecentSQLEditorHandler
extends
BaseSQLEditorHandler
{
@Nullable
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
DBPDataSourceContainer
dataSourceContainer
=
getCurrentConnection
(
event
);
if
(
dataSourceContainer
==
null
)
{
return
null
;
}
IWorkbenchWindow
workbenchWindow
=
HandlerUtil
.
getActiveWorkbenchWindow
(
event
);
openRecentScript
(
workbenchWindow
,
dataSourceContainer
,
null
);
return
null
;
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/NavigatorViewBase.java
浏览文件 @
da016f74
...
...
@@ -18,6 +18,7 @@
package
org.jkiss.dbeaver.ui.navigator.database
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.jface.viewers.*
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.widgets.Composite
;
...
...
@@ -31,12 +32,12 @@ import org.jkiss.dbeaver.core.DBeaverUI;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProvider
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProviderEx
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.datasource.DataSourceHandler
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.controls.PropertyPageStandard
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.Open
SQLEditor
Handler
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler
;
import
org.jkiss.dbeaver.ui.navigator.INavigatorModelView
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -94,7 +95,7 @@ public abstract class NavigatorViewBase extends ViewPart implements INavigatorMo
protected
DatabaseNavigatorTree
createNavigatorTree
(
Composite
parent
,
DBNNode
rootNode
)
{
// Create tree
DatabaseNavigatorTree
navigatorTree
=
new
DatabaseNavigatorTree
(
parent
,
rootNode
,
getTreeStyle
());
final
DatabaseNavigatorTree
navigatorTree
=
new
DatabaseNavigatorTree
(
parent
,
rootNode
,
getTreeStyle
());
navigatorTree
.
getViewer
().
addSelectionChangedListener
(
new
ISelectionChangedListener
()
...
...
@@ -145,7 +146,11 @@ public abstract class NavigatorViewBase extends ViewPart implements INavigatorMo
}
break
;
case
SQL_EDITOR:
OpenSQLEditorHandler
.
openRecentScript
(
getSite
().
getWorkbenchWindow
(),
dataSource
,
null
);
try
{
OpenHandler
.
openRecentScript
(
getSite
().
getWorkbenchWindow
(),
dataSource
,
null
);
}
catch
(
CoreException
e
)
{
UIUtils
.
showErrorDialog
(
navigatorTree
.
getShell
(),
"Open SQL editor"
,
"Can't open SQL editor"
,
e
);
}
break
;
}
}
else
if
(
node
instanceof
DBNDatabaseNode
&&
((
DBNDatabaseNode
)
node
).
allowsOpen
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录