Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
fa01a401
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,发现更多精彩内容 >>
提交
fa01a401
编写于
12月 18, 2018
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#10 Editors model refactoring (get rid of DBeaverCore)
上级
a5efd835
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
100 addition
and
91 deletion
+100
-91
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
....dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
+2
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
...re/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
+0
-30
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/editors/DatabaseEditorInput.java
...src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java
+3
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
.../jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
+5
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorListener.java
.../org/jkiss/dbeaver/ui/editors/DatabaseEditorListener.java
+4
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
...org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/EditorUtils.java
...er.core/src/org/jkiss/dbeaver/ui/editors/EditorUtils.java
+12
-30
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/NodeEditorInputFactory.java
.../org/jkiss/dbeaver/ui/editors/NodeEditorInputFactory.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
....core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
+9
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
...e/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+9
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
...rg/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/actions/NavigatorHandlerAssociateScript.java
...ui/navigator/actions/NavigatorHandlerAssociateScript.java
+3
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
...s/dbeaver/ui/perspective/DataSourceManagementToolbar.java
+1
-1
plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/core/DatabaseLaunchDelegate.java
.../org/jkiss/dbeaver/debug/core/DatabaseLaunchDelegate.java
+2
-2
plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/sourcelookup/DBGSourcePathComputer.java
...iss/dbeaver/debug/sourcelookup/DBGSourcePathComputer.java
+2
-2
plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseDebugConfigurationTab.java
...jkiss/dbeaver/debug/ui/DatabaseDebugConfigurationTab.java
+2
-1
plugins/org.jkiss.dbeaver.ext.sample.database/src/org/jkiss/dbeaver/ext/sample/database/WorkbenchInitializerCreateSampleDatabase.java
...le/database/WorkbenchInitializerCreateSampleDatabase.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
...ss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
+32
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
...er.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
+4
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF
浏览文件 @
fa01a401
...
...
@@ -126,6 +126,7 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.nebula.widgets.gallery,
org.jkiss.dbeaver.model;visibility:=reexport,
org.jkiss.dbeaver.ui;visibility:=reexport,
org.jkiss.dbeaver.ui.editors.base;visibility:=reexport,
org.jkiss.utils;visibility:=reexport,
org.jkiss.dbeaver.data.transfer,
org.jkiss.bundle.bouncycastle;resolution:=optional
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
浏览文件 @
fa01a401
...
...
@@ -495,6 +495,8 @@ public class DBeaverCore implements DBPPlatform {
return
projectRegistry
;
}
@NotNull
@Override
public
DBPExternalFileManager
getExternalFileManager
()
{
return
projectRegistry
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
浏览文件 @
fa01a401
...
...
@@ -447,19 +447,6 @@ public class DataSourceRegistry implements DBPDataSourceRegistry
return
SecurePreferencesFactory
.
getDefault
().
node
(
"dbeaver"
).
node
(
"datasources"
);
}
public
static
List
<
DataSourceRegistry
>
getAllRegistries
()
{
List
<
DataSourceRegistry
>
result
=
new
ArrayList
<>();
for
(
IProject
project
:
DBeaverCore
.
getInstance
().
getLiveProjects
())
{
if
(
project
.
isOpen
())
{
DataSourceRegistry
registry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getDataSourceRegistry
(
project
);
if
(
registry
!=
null
)
{
result
.
add
(
registry
);
}
}
}
return
result
;
}
public
static
List
<
DBPDataSourceContainer
>
getAllDataSources
()
{
List
<
DBPDataSourceContainer
>
result
=
new
ArrayList
<>();
for
(
IProject
project
:
DBeaverCore
.
getInstance
().
getLiveProjects
())
{
...
...
@@ -474,23 +461,6 @@ public class DataSourceRegistry implements DBPDataSourceRegistry
}
/**
* Find data source in all available registries
*/
public
static
DBPDataSourceContainer
findDataSource
(
String
dataSourceId
)
{
ProjectRegistry
projectRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
();
for
(
IProject
project
:
DBeaverCore
.
getInstance
().
getLiveProjects
())
{
DataSourceRegistry
dataSourceRegistry
=
projectRegistry
.
getDataSourceRegistry
(
project
);
if
(
dataSourceRegistry
!=
null
)
{
DBPDataSourceContainer
dataSourceContainer
=
dataSourceRegistry
.
getDataSource
(
dataSourceId
);
if
(
dataSourceContainer
!=
null
)
{
return
dataSourceContainer
;
}
}
}
return
null
;
}
private
void
loadDataSources
(
boolean
refresh
)
{
if
(!
project
.
isOpen
())
{
return
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
浏览文件 @
fa01a401
...
...
@@ -46,6 +46,7 @@ import org.jkiss.dbeaver.core.CoreCommands;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionPurpose
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceListener
;
...
...
@@ -56,7 +57,6 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import
org.jkiss.dbeaver.model.runtime.load.AbstractLoadService
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.runtime.qm.DefaultEventFilter
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.controls.ProgressLoaderVisualizer
;
...
...
@@ -893,7 +893,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
QMMStatementExecuteInfo
stmtExec
=
(
QMMStatementExecuteInfo
)
object
;
if
(
dsContainer
==
null
)
{
String
containerId
=
stmtExec
.
getStatement
().
getSession
().
getContainerId
();
dsContainer
=
D
ataSourceRegistry
.
findDataSource
(
containerId
);
dsContainer
=
D
BUtils
.
findDataSource
(
containerId
);
}
String
queryString
=
stmtExec
.
getQueryString
();
if
(!
CommonUtils
.
isEmptyTrimmed
(
queryString
))
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java
浏览文件 @
fa01a401
...
...
@@ -23,7 +23,6 @@ import org.eclipse.ui.model.IWorkbenchAdapter;
import
org.eclipse.ui.model.WorkbenchAdapter
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProvider
;
...
...
@@ -33,6 +32,7 @@ import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.preferences.DBPPropertySource
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.properties.PropertySourceEditable
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
...
...
@@ -90,7 +90,7 @@ public abstract class DatabaseEditorInput<NODE extends DBNDatabaseNode> implemen
@Override
public
String
getName
()
{
if
(
DB
eaverCore
.
getGlobal
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
NAVIGATOR_EDITOR_FULL_NAME
))
{
if
(
DB
Workbench
.
getPlatform
().
get
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
NAVIGATOR_EDITOR_FULL_NAME
))
{
return
node
.
getNodeFullName
();
}
else
{
return
node
.
getName
();
...
...
@@ -103,7 +103,7 @@ public abstract class DatabaseEditorInput<NODE extends DBNDatabaseNode> implemen
if
(
getExecutionContext
()
==
null
||
getDatabaseObject
()
==
null
||
!
getDatabaseObject
().
isPersisted
()
||
!
DB
eaverCore
.
getGlobal
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
UI_KEEP_DATABASE_EDITORS
))
!
DB
Workbench
.
getPlatform
().
get
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
UI_KEEP_DATABASE_EDITORS
))
{
return
null
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
浏览文件 @
fa01a401
...
...
@@ -22,12 +22,12 @@ import org.eclipse.ui.IElementFactory;
import
org.eclipse.ui.IMemento
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
org.jkiss.dbeaver.r
egistry.DataSourceRegistry
;
import
org.jkiss.dbeaver.r
untime.DBWorkbench
;
import
org.jkiss.utils.CommonUtils
;
public
class
DatabaseEditorInputFactory
implements
IElementFactory
...
...
@@ -68,7 +68,7 @@ public class DatabaseEditorInputFactory implements IElementFactory
final
String
activePageId
=
memento
.
getString
(
TAG_ACTIVE_PAGE
);
final
String
activeFolderId
=
memento
.
getString
(
TAG_ACTIVE_FOLDER
);
final
DBPDataSourceContainer
dataSourceContainer
=
D
ataSourceRegistry
.
findDataSource
(
dataSourceId
);
final
DBPDataSourceContainer
dataSourceContainer
=
D
BUtils
.
findDataSource
(
dataSourceId
);
if
(
dataSourceContainer
==
null
)
{
log
.
error
(
"Can't find data source '"
+
dataSourceId
+
"'"
);
//$NON-NLS-2$
return
null
;
...
...
@@ -79,7 +79,7 @@ public class DatabaseEditorInputFactory implements IElementFactory
return
null
;
}
final
IProject
project
=
dataSourceContainer
.
getRegistry
().
getProject
();
final
DBNModel
navigatorModel
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
();
final
DBNModel
navigatorModel
=
DB
Workbench
.
getPlatform
().
getNavigatorModel
();
navigatorModel
.
ensureProjectLoaded
(
project
);
return
new
DatabaseLazyEditorInput
(
dataSourceContainer
,
project
,
nodePath
,
nodeName
,
activePageId
,
activeFolderId
);
...
...
@@ -87,7 +87,7 @@ public class DatabaseEditorInputFactory implements IElementFactory
public
static
void
saveState
(
IMemento
memento
,
DatabaseEditorInput
input
)
{
if
(!
DB
eaverCore
.
getGlobal
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
UI_KEEP_DATABASE_EDITORS
))
{
if
(!
DB
Workbench
.
getPlatform
().
get
PreferenceStore
().
getBoolean
(
DBeaverPreferences
.
UI_KEEP_DATABASE_EDITORS
))
{
return
;
}
final
DBCExecutionContext
context
=
input
.
getExecutionContext
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorListener.java
浏览文件 @
fa01a401
...
...
@@ -17,11 +17,11 @@
package
org.jkiss.dbeaver.ui.editors
;
import
org.eclipse.ui.IWorkbenchPage
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.navigator.DBNEvent
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.navigator.INavigatorListener
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
/**
* DatabaseEditorListener
...
...
@@ -44,7 +44,7 @@ public class DatabaseEditorListener implements INavigatorListener
dataSourceContainer
.
acquire
(
databaseEditor
);
}
// Register node listener
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
addListener
(
this
);
DB
Workbench
.
getPlatform
().
getNavigatorModel
().
addListener
(
this
);
}
public
void
dispose
()
...
...
@@ -56,7 +56,7 @@ public class DatabaseEditorListener implements INavigatorListener
}
// Remove node listener
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
removeListener
(
this
);
DB
Workbench
.
getPlatform
().
getNavigatorModel
().
removeListener
(
this
);
}
public
DBNNode
getTreeNode
()
...
...
@@ -86,7 +86,7 @@ public class DatabaseEditorListener implements INavigatorListener
}
}
if
(
closeEditor
)
{
if
(
DB
eaverCore
.
isClosing
())
{
if
(
DB
Workbench
.
getPlatform
().
isShuttingDown
())
{
// Do not update editors during shutdown, just remove listeners
dispose
();
return
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
浏览文件 @
fa01a401
...
...
@@ -22,7 +22,6 @@ import org.eclipse.jface.resource.ImageDescriptor;
import
org.eclipse.ui.IPersistableElement
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.edit.DBECommandContext
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
...
...
@@ -33,6 +32,7 @@ import org.jkiss.dbeaver.model.navigator.DBNNode;
import
org.jkiss.dbeaver.model.preferences.DBPPropertySource
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.properties.PropertySourceCustom
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UITask
;
...
...
@@ -184,7 +184,7 @@ public class DatabaseLazyEditorInput implements IDatabaseEditorInput
public
IDatabaseEditorInput
initializeRealInput
(
final
DBRProgressMonitor
monitor
)
throws
DBException
{
final
DBNModel
navigatorModel
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
();
final
DBNModel
navigatorModel
=
DB
Workbench
.
getPlatform
().
getNavigatorModel
();
while
(!
dataSource
.
isConnected
())
{
boolean
connected
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/EditorUtils.java
浏览文件 @
fa01a401
...
...
@@ -37,14 +37,12 @@ import org.eclipse.ui.ide.IDE;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBPExternalFileManager
;
import
org.jkiss.dbeaver.model.app.DBPDataSourceRegistry
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.r
egistry.DataSourceRegistry
;
import
org.jkiss.dbeaver.r
untime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -136,14 +134,6 @@ public class EditorUtils {
//////////////////////////////////////////////////////////
// Datasource <-> resource manipulations
public
static
boolean
isReadEmbeddedBinding
()
{
return
DBeaverCore
.
getGlobalPreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
SCRIPT_BIND_EMBEDDED_READ
);
}
public
static
boolean
isWriteEmbeddedBinding
()
{
return
DBeaverCore
.
getGlobalPreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
SCRIPT_BIND_EMBEDDED_WRITE
);
}
public
static
DBPDataSourceContainer
getInputDataSource
(
IEditorInput
editorInput
)
{
if
(
editorInput
instanceof
IDatabaseEditorInput
)
{
...
...
@@ -161,18 +151,18 @@ public class EditorUtils {
}
else
{
File
localFile
=
getLocalFileFromInput
(
editorInput
);
if
(
localFile
!=
null
)
{
final
DBPExternalFileManager
efManager
=
DB
eaverCore
.
getInstance
().
getExternalFileManager
();
final
DBPExternalFileManager
efManager
=
DB
Workbench
.
getPlatform
().
getExternalFileManager
();
String
dataSourceId
=
(
String
)
efManager
.
getFileProperty
(
localFile
,
PROP_SQL_DATA_SOURCE_ID
);
String
projectName
=
(
String
)
efManager
.
getFileProperty
(
localFile
,
PROP_SQL_PROJECT_ID
);
if
(
CommonUtils
.
isEmpty
(
dataSourceId
)
||
CommonUtils
.
isEmpty
(
projectName
))
{
return
null
;
}
final
IProject
project
=
DB
eaverCore
.
getInstance
().
getWorkspace
().
getEclipseWorkspace
().
getRoot
().
getProject
(
projectName
);
final
IProject
project
=
DB
Workbench
.
getPlatform
().
getWorkspace
().
getEclipseWorkspace
().
getRoot
().
getProject
(
projectName
);
if
(
project
==
null
||
!
project
.
exists
())
{
log
.
error
(
"Can't locate project '"
+
projectName
+
"' in workspace"
);
return
null
;
}
D
ataSourceRegistry
dataSourceRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getDataSourceRegistry
(
project
);
D
BPDataSourceRegistry
dataSourceRegistry
=
DBWorkbench
.
getPlatform
().
getProjectManager
().
getDataSourceRegistry
(
project
);
return
dataSourceRegistry
==
null
?
null
:
dataSourceRegistry
.
getDataSource
(
dataSourceId
);
}
else
{
...
...
@@ -194,12 +184,12 @@ public class EditorUtils {
if
(
dataSourceId
!=
null
)
{
IProject
project
=
file
.
getProject
();
if
(
projectId
!=
null
)
{
final
IProject
fileProject
=
DB
eaverCore
.
getInstance
().
getWorkspace
().
getEclipseWorkspace
().
getRoot
().
getProject
(
projectId
);
final
IProject
fileProject
=
DB
Workbench
.
getPlatform
().
getWorkspace
().
getEclipseWorkspace
().
getRoot
().
getProject
(
projectId
);
if
(
fileProject
!=
null
&&
fileProject
.
exists
())
{
project
=
fileProject
;
}
}
D
ataSourceRegistry
dataSourceRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getDataSourceRegistry
(
project
);
D
BPDataSourceRegistry
dataSourceRegistry
=
DBWorkbench
.
getPlatform
().
getProjectManager
().
getDataSourceRegistry
(
project
);
return
dataSourceRegistry
==
null
?
null
:
dataSourceRegistry
.
getDataSource
(
dataSourceId
);
}
else
{
// Try to extract from embedded comment
...
...
@@ -211,7 +201,7 @@ public class EditorUtils {
}
}
public
static
void
setInputDataSource
(
@NotNull
IEditorInput
editorInput
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
,
boolean
notify
)
public
static
void
setInputDataSource
(
@NotNull
IEditorInput
editorInput
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
)
{
if
(
editorInput
instanceof
INonPersistentEditorInput
)
{
((
INonPersistentEditorInput
)
editorInput
).
setProperty
(
PROP_SQL_DATA_SOURCE_CONTAINER
,
dataSourceContainer
);
...
...
@@ -219,19 +209,19 @@ public class EditorUtils {
}
IFile
file
=
getFileFromInput
(
editorInput
);
if
(
file
!=
null
)
{
setFileDataSource
(
file
,
dataSourceContainer
,
notify
);
setFileDataSource
(
file
,
dataSourceContainer
);
}
else
{
File
localFile
=
getLocalFileFromInput
(
editorInput
);
if
(
localFile
!=
null
)
{
setFileDataSource
(
dataSourceContainer
,
localFile
);
setFileDataSource
(
localFile
,
dataSourceContainer
);
}
else
{
log
.
error
(
"Can't set datasource for input "
+
editorInput
);
}
}
}
private
static
void
setFileDataSource
(
@Nullable
DBPDataSourceContainer
dataSourceContainer
,
File
localFile
)
{
final
DBPExternalFileManager
efManager
=
DB
eaverCore
.
getInstance
().
getExternalFileManager
();
private
static
void
setFileDataSource
(
File
localFile
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
)
{
final
DBPExternalFileManager
efManager
=
DB
Workbench
.
getPlatform
().
getExternalFileManager
();
efManager
.
setFileProperty
(
localFile
,
PROP_SQL_PROJECT_ID
,
...
...
@@ -243,18 +233,10 @@ public class EditorUtils {
}
public
static
void
setFileDataSource
(
@NotNull
IFile
file
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
)
{
setFileDataSource
(
file
,
dataSourceContainer
,
false
);
}
public
static
void
setFileDataSource
(
@NotNull
IFile
file
,
@Nullable
DBPDataSourceContainer
dataSourceContainer
,
boolean
notify
)
{
try
{
file
.
setPersistentProperty
(
QN_DATA_SOURCE_ID
,
dataSourceContainer
==
null
?
null
:
dataSourceContainer
.
getId
());
file
.
setPersistentProperty
(
QN_PROJECT_ID
,
dataSourceContainer
==
null
?
null
:
dataSourceContainer
.
getRegistry
().
getProject
().
getName
());
if
(
notify
)
{
NavigatorUtils
.
refreshNavigatorResource
(
file
,
dataSourceContainer
);
}
}
catch
(
CoreException
e
)
{
log
.
error
(
"Internal error while writing file property"
,
e
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/NodeEditorInputFactory.java
浏览文件 @
fa01a401
...
...
@@ -21,10 +21,10 @@ import org.eclipse.ui.IElementFactory;
import
org.eclipse.ui.IMemento
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.editors.entity.NodeEditorInput
;
public
class
NodeEditorInputFactory
implements
IElementFactory
...
...
@@ -48,7 +48,7 @@ public class NodeEditorInputFactory implements IElementFactory
if
(
nodePath
==
null
)
{
return
null
;
}
final
DBNModel
navigatorModel
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
();
final
DBNModel
navigatorModel
=
DB
Workbench
.
getPlatform
().
getNavigatorModel
();
try
{
final
DBNNode
node
=
navigatorModel
.
getNodeByPath
(
new
VoidProgressMonitor
(),
nodePath
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
浏览文件 @
fa01a401
...
...
@@ -107,6 +107,7 @@ import org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationDescriptor;
import
org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationPanelDescriptor
;
import
org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationRegistry
;
import
org.jkiss.dbeaver.ui.editors.text.ScriptPositionColumn
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.dbeaver.ui.views.SQLResultsView
;
import
org.jkiss.dbeaver.ui.views.plan.ExplainPlanViewer
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
...
...
@@ -300,7 +301,11 @@ public class SQLEditor extends SQLEditorBase implements
}
IEditorInput
input
=
getEditorInput
();
if
(
input
!=
null
)
{
EditorUtils
.
setInputDataSource
(
input
,
container
,
true
);
EditorUtils
.
setInputDataSource
(
input
,
container
);
IFile
file
=
EditorUtils
.
getFileFromInput
(
input
);
if
(
file
!=
null
)
{
NavigatorUtils
.
refreshNavigatorResource
(
file
,
container
);
}
}
checkConnected
(
false
,
status
->
UIUtils
.
asyncExec
(()
->
{
...
...
@@ -317,7 +322,7 @@ public class SQLEditor extends SQLEditorBase implements
dataSourceContainer
.
acquire
(
this
);
}
if
(
EditorUtils
.
isWriteEmbeddedBinding
())
{
if
(
SQLEditorBase
.
isWriteEmbeddedBinding
())
{
// Patch connection reference
UIUtils
.
syncExec
(
this
::
embedDataSourceAssociation
);
}
...
...
@@ -327,7 +332,7 @@ public class SQLEditor extends SQLEditorBase implements
private
void
updateDataSourceContainer
()
{
DBPDataSourceContainer
inputDataSource
=
null
;
if
(
EditorUtils
.
isReadEmbeddedBinding
())
{
if
(
SQLEditorBase
.
isReadEmbeddedBinding
())
{
// Try to get datasource from contents (always, no matter what )
inputDataSource
=
getDataSourceFromContent
();
}
...
...
@@ -2008,7 +2013,7 @@ public class SQLEditor extends SQLEditorBase implements
IFileStore
fileStore
=
EFS
.
getStore
(
saveFile
.
toURI
());
IEditorInput
input
=
new
FileStoreEditorInput
(
fileStore
);
EditorUtils
.
setInputDataSource
(
input
,
getDataSourceContainer
()
,
false
);
EditorUtils
.
setInputDataSource
(
input
,
getDataSourceContainer
());
init
(
getEditorSite
(),
input
);
}
catch
(
CoreException
e
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
浏览文件 @
fa01a401
...
...
@@ -49,6 +49,7 @@ import org.jkiss.dbeaver.ModelPreferences;
import
org.jkiss.dbeaver.core.CoreCommands
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverActivator
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect
;
...
...
@@ -168,6 +169,14 @@ public abstract class SQLEditorBase extends BaseTextEditor implements IErrorVisu
return
false
;
}
static
boolean
isReadEmbeddedBinding
()
{
return
DBWorkbench
.
getPlatform
().
getPreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
SCRIPT_BIND_EMBEDDED_READ
);
}
static
boolean
isWriteEmbeddedBinding
()
{
return
DBWorkbench
.
getPlatform
().
getPreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
SCRIPT_BIND_EMBEDDED_WRITE
);
}
protected
void
handleInputChange
(
IEditorInput
input
)
{
if
(
isBigScript
(
input
))
{
uninstallOccurrencesFinder
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/OpenHandler.java
浏览文件 @
fa01a401
...
...
@@ -270,7 +270,7 @@ public class OpenHandler extends AbstractDataSourceHandler {
}
public
static
SQLEditor
openSQLConsole
(
IWorkbenchWindow
workbenchWindow
,
DBPDataSourceContainer
dataSourceContainer
,
IEditorInput
sqlInput
)
{
EditorUtils
.
setInputDataSource
(
sqlInput
,
dataSourceContainer
,
false
);
EditorUtils
.
setInputDataSource
(
sqlInput
,
dataSourceContainer
);
return
openSQLEditor
(
workbenchWindow
,
sqlInput
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/actions/NavigatorHandlerAssociateScript.java
浏览文件 @
fa01a401
...
...
@@ -30,6 +30,7 @@ import org.jkiss.dbeaver.model.navigator.DBNNode;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.ui.dialogs.connection.SelectDataSourceDialog
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
java.util.ArrayList
;
...
...
@@ -61,7 +62,8 @@ public class NavigatorHandlerAssociateScript extends NavigatorHandlerObjectBase
}
DBPDataSourceContainer
dataSource
=
dialog
.
getDataSource
();
for
(
IFile
script
:
scripts
)
{
EditorUtils
.
setFileDataSource
(
script
,
dataSource
,
true
);
EditorUtils
.
setFileDataSource
(
script
,
dataSource
);
NavigatorUtils
.
refreshNavigatorResource
(
script
,
dataSource
);
}
}
return
null
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
浏览文件 @
fa01a401
...
...
@@ -699,7 +699,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
// Register as datasource listener in all datasources
// We need it because at this moment there could be come already loaded registries (on startup)
DataSourceProviderRegistry
.
getInstance
().
addDataSourceRegistryListener
(
DataSourceManagementToolbar
.
this
);
for
(
D
ataSourceRegistry
registry
:
DataSourceRegistry
.
getAllRegistries
())
{
for
(
D
BPDataSourceRegistry
registry
:
DBUtils
.
getAllRegistries
())
{
handleRegistryLoad
(
registry
);
}
...
...
plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/core/DatabaseLaunchDelegate.java
浏览文件 @
fa01a401
...
...
@@ -31,7 +31,7 @@ import org.jkiss.dbeaver.debug.DBGException;
import
org.jkiss.dbeaver.debug.core.model.DatabaseDebugTarget
;
import
org.jkiss.dbeaver.debug.core.model.DatabaseProcess
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.
registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.
model.DBUtils
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
java.util.Map
;
...
...
@@ -42,7 +42,7 @@ public class DatabaseLaunchDelegate extends LaunchConfigurationDelegate {
public
void
launch
(
ILaunchConfiguration
configuration
,
String
mode
,
ILaunch
launch
,
IProgressMonitor
monitor
)
throws
CoreException
{
String
datasourceId
=
configuration
.
getAttribute
(
DBGConstants
.
ATTR_DATASOURCE_ID
,
(
String
)
null
);
DBPDataSourceContainer
datasourceDescriptor
=
D
ataSourceRegistry
.
findDataSource
(
datasourceId
);
DBPDataSourceContainer
datasourceDescriptor
=
D
BUtils
.
findDataSource
(
datasourceId
);
if
(
datasourceDescriptor
==
null
)
{
String
message
=
NLS
.
bind
(
"Unable to find data source with id {0}"
,
datasourceId
);
throw
new
CoreException
(
DebugUtils
.
newErrorStatus
(
message
));
...
...
plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/sourcelookup/DBGSourcePathComputer.java
浏览文件 @
fa01a401
...
...
@@ -26,7 +26,7 @@ import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate;
import
org.jkiss.dbeaver.debug.DBGConstants
;
import
org.jkiss.dbeaver.debug.core.DebugUtils
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.
registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.
model.DBUtils
;
public
class
DBGSourcePathComputer
implements
ISourcePathComputerDelegate
{
...
...
@@ -34,7 +34,7 @@ public class DBGSourcePathComputer implements ISourcePathComputerDelegate {
public
ISourceContainer
[]
computeSourceContainers
(
ILaunchConfiguration
configuration
,
IProgressMonitor
monitor
)
throws
CoreException
{
String
datasourceId
=
configuration
.
getAttribute
(
DBGConstants
.
ATTR_DATASOURCE_ID
,
""
);
DBPDataSourceContainer
dataSource
=
D
ataSourceRegistry
.
findDataSource
(
datasourceId
);
DBPDataSourceContainer
dataSource
=
D
BUtils
.
findDataSource
(
datasourceId
);
if
(
dataSource
==
null
)
{
throw
new
CoreException
(
DebugUtils
.
newErrorStatus
(
"Can't find datasource "
+
datasourceId
));
}
...
...
plugins/org.jkiss.dbeaver.debug.ui/src/org/jkiss/dbeaver/debug/ui/DatabaseDebugConfigurationTab.java
浏览文件 @
fa01a401
...
...
@@ -39,6 +39,7 @@ import org.jkiss.dbeaver.debug.ui.internal.DebugConfigurationPanelRegistry;
import
org.jkiss.dbeaver.debug.ui.internal.DebugUIMessages
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableContext
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.runtime.RunnableContextDelegate
;
...
...
@@ -204,7 +205,7 @@ public class DatabaseDebugConfigurationTab extends AbstractLaunchConfigurationTa
this
.
currentConfiguration
=
configuration
;
try
{
String
dsId
=
configuration
.
getAttribute
(
DBGConstants
.
ATTR_DATASOURCE_ID
,
(
String
)
null
);
DBPDataSourceContainer
dataSource
=
D
ataSourceRegistry
.
findDataSource
(
dsId
);
DBPDataSourceContainer
dataSource
=
D
BUtils
.
findDataSource
(
dsId
);
connectionCombo
.
select
(
dataSource
);
if
(
dataSource
!=
null
)
{
driverText
.
setText
(
dataSource
.
getDriver
().
getFullName
());
...
...
plugins/org.jkiss.dbeaver.ext.sample.database/src/org/jkiss/dbeaver/ext/sample/database/WorkbenchInitializerCreateSampleDatabase.java
浏览文件 @
fa01a401
...
...
@@ -20,6 +20,7 @@ import org.eclipse.core.resources.IProject;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionType
;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
...
...
@@ -60,7 +61,7 @@ public class WorkbenchInitializerCreateSampleDatabase implements IWorkbenchWindo
// No active project
return
;
}
if
(
D
ataSourceRegistry
.
findDataSource
(
SAMPLE_DB1_ID
)
!=
null
)
{
if
(
D
BUtils
.
findDataSource
(
SAMPLE_DB1_ID
)
!=
null
)
{
// Already exist
return
;
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
浏览文件 @
fa01a401
...
...
@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.DBException;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.ModelPreferences
;
import
org.jkiss.dbeaver.model.app.DBPDataSourceRegistry
;
import
org.jkiss.dbeaver.model.app.DBPProjectManager
;
import
org.jkiss.dbeaver.model.data.*
;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.impl.data.DBDValueError
;
...
...
@@ -35,6 +36,7 @@ import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import
org.jkiss.dbeaver.model.sql.*
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.model.struct.rdb.*
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.jobs.InvalidateJob
;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
...
...
@@ -1667,4 +1669,34 @@ public final class DBUtils {
}
return
null
;
}
public
static
List
<
DBPDataSourceRegistry
>
getAllRegistries
()
{
List
<
DBPDataSourceRegistry
>
result
=
new
ArrayList
<>();
for
(
IProject
project
:
DBWorkbench
.
getPlatform
().
getLiveProjects
())
{
if
(
project
.
isOpen
())
{
DBPDataSourceRegistry
registry
=
DBWorkbench
.
getPlatform
().
getProjectManager
().
getDataSourceRegistry
(
project
);
if
(
registry
!=
null
)
{
result
.
add
(
registry
);
}
}
}
return
result
;
}
/**
* Find data source in all available registries
*/
public
static
DBPDataSourceContainer
findDataSource
(
String
dataSourceId
)
{
DBPProjectManager
projectRegistry
=
DBWorkbench
.
getPlatform
().
getProjectManager
();
for
(
IProject
project
:
DBWorkbench
.
getPlatform
().
getLiveProjects
())
{
DBPDataSourceRegistry
dataSourceRegistry
=
projectRegistry
.
getDataSourceRegistry
(
project
);
if
(
dataSourceRegistry
!=
null
)
{
DBPDataSourceContainer
dataSourceContainer
=
dataSourceRegistry
.
getDataSource
(
dataSourceId
);
if
(
dataSourceContainer
!=
null
)
{
return
dataSourceContainer
;
}
}
}
return
null
;
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
浏览文件 @
fa01a401
...
...
@@ -20,6 +20,7 @@ package org.jkiss.dbeaver.model.app;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.resources.IWorkspace
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.model.DBPExternalFileManager
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.data.DBDRegistry
;
import
org.jkiss.dbeaver.model.edit.DBERegistry
;
...
...
@@ -83,6 +84,9 @@ public interface DBPPlatform
@NotNull
DBASecureStorage
getSecureStorage
();
@NotNull
DBPExternalFileManager
getExternalFileManager
();
@NotNull
File
getTempFolder
(
DBRProgressMonitor
monitor
,
String
name
)
throws
IOException
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录