Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8be9b259
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,发现更多精彩内容 >>
提交
8be9b259
编写于
7月 01, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Model refactoring
上级
3ba6086d
变更
20
显示空白变更内容
内联
并排
Showing
20 changed file
with
157 addition
and
94 deletion
+157
-94
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
....dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
+7
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBPApplication.java
...aver.core/src/org/jkiss/dbeaver/model/DBPApplication.java
+6
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBPProjectManager.java
...r.core/src/org/jkiss/dbeaver/model/DBPProjectManager.java
+41
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
.../src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
.../org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseItem.java
...rc/org/jkiss/dbeaver/model/navigator/DBNDatabaseItem.java
+4
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseNode.java
...rc/org/jkiss/dbeaver/model/navigator/DBNDatabaseNode.java
+18
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseObject.java
.../org/jkiss/dbeaver/model/navigator/DBNDatabaseObject.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
....core/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
+17
-28
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNNode.java
...r.core/src/org/jkiss/dbeaver/model/navigator/DBNNode.java
+5
-7
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
...ore/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
+6
-7
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
...rg/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
+8
-8
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
...re/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
+5
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
...r.core/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
+15
-9
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
....core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
+8
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/scripts/ScriptsExportUtils.java
...c/org/jkiss/dbeaver/tools/scripts/ScriptsExportUtils.java
+3
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityHyperlink.java
.../org/jkiss/dbeaver/ui/editors/entity/EntityHyperlink.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
...e/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
+3
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
...src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
+2
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/DatabaseNavigatorTree.java
...er/ui/views/navigator/database/DatabaseNavigatorTree.java
+1
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
浏览文件 @
8be9b259
...
...
@@ -24,6 +24,7 @@ import org.jkiss.code.NotNull;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.model.DBPApplication
;
import
org.jkiss.dbeaver.model.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.DBPProjectManager
;
import
org.jkiss.dbeaver.registry.PluginServiceRegistry
;
import
org.jkiss.dbeaver.runtime.IPluginService
;
import
org.jkiss.dbeaver.runtime.net.GlobalProxyAuthenticator
;
...
...
@@ -175,7 +176,7 @@ public class DBeaverCore implements DBPApplication {
initializeProjects
();
// Navigator model
this
.
navigatorModel
=
new
DBNModel
();
this
.
navigatorModel
=
new
DBNModel
(
this
);
this
.
navigatorModel
.
initialize
();
// Activate plugin services
...
...
@@ -297,6 +298,11 @@ public class DBeaverCore implements DBPApplication {
return
workspace
;
}
@Override
public
DBPProjectManager
getProjectManager
()
{
return
getProjectRegistry
();
}
/**
* Returns configuration file
*/
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBPApplication.java
浏览文件 @
8be9b259
...
...
@@ -18,10 +18,13 @@
package
org.jkiss.dbeaver.model
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.resources.IWorkspace
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
java.util.Collection
;
/**
* DBPApplication
*/
...
...
@@ -32,4 +35,7 @@ public interface DBPApplication
IWorkspace
getWorkspace
();
DBPProjectManager
getProjectManager
();
Collection
<
IProject
>
getLiveProjects
();
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/DBPProjectManager.java
0 → 100644
浏览文件 @
8be9b259
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 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.model
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.resources.IResource
;
import
org.jkiss.dbeaver.model.project.DBPProjectListener
;
import
org.jkiss.dbeaver.model.project.DBPResourceHandler
;
/**
* ProjectManager
*/
public
interface
DBPProjectManager
{
DBPResourceHandler
getResourceHandler
(
IResource
resource
);
IProject
getActiveProject
();
void
setActiveProject
(
IProject
project
);
void
addProject
(
IProject
project
);
void
removeProject
(
IProject
project
);
void
addProjectListener
(
DBPProjectListener
listener
);
void
removeProjectListener
(
DBPProjectListener
listener
);
DBPDataSourceRegistry
getDataSourceRegistry
(
IProject
project
);
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
浏览文件 @
8be9b259
...
...
@@ -49,7 +49,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
super
(
parentNode
);
this
.
dataSource
=
dataSource
;
this
.
treeRoot
=
dataSource
.
getDriver
().
getNavigatorRoot
();
DBNModel
.
getInstance
().
addNode
(
this
,
false
);
registerNode
(
);
}
@Override
...
...
@@ -68,7 +68,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
@Override
protected
void
dispose
(
boolean
reflect
)
{
DBNModel
.
getInstance
().
removeNode
(
this
,
reflect
);
unregisterNode
(
reflect
);
super
.
dispose
(
reflect
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
浏览文件 @
8be9b259
...
...
@@ -45,13 +45,13 @@ public class DBNDatabaseFolder extends DBNDatabaseNode implements DBNContainer,
{
super
(
parent
);
this
.
meta
=
meta
;
DBNModel
.
getInstance
().
addNode
(
this
);
registerNode
(
);
}
@Override
protected
void
dispose
(
boolean
reflect
)
{
DBNModel
.
getInstance
().
removeNode
(
this
,
reflect
);
unregisterNode
(
reflect
);
super
.
dispose
(
reflect
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseItem.java
浏览文件 @
8be9b259
...
...
@@ -34,7 +34,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode
super
(
parent
);
this
.
meta
=
meta
;
this
.
object
=
object
;
DBNModel
.
getInstance
().
addNode
(
this
,
reflect
);
registerNode
(
);
}
@Override
...
...
@@ -46,9 +46,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode
@Override
protected
void
dispose
(
boolean
reflect
)
{
// Notify model
// Reflect changes only if underlying object is not persisted
DBNModel
.
getInstance
().
removeNode
(
this
,
reflect
);
unregisterNode
(
reflect
);
this
.
object
=
null
;
super
.
dispose
(
reflect
);
}
...
...
@@ -61,9 +59,9 @@ public class DBNDatabaseItem extends DBNDatabaseNode
@Override
protected
void
reloadObject
(
DBRProgressMonitor
monitor
,
DBSObject
object
)
{
DBNModel
.
getInstance
().
removeNode
(
this
,
false
);
unregisterNode
(
false
);
this
.
object
=
object
;
DBNModel
.
getInstance
().
addNode
(
this
,
false
);
registerNode
(
);
}
@Override
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseNode.java
浏览文件 @
8be9b259
...
...
@@ -52,6 +52,20 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
super
(
parentNode
);
}
protected
void
registerNode
()
{
DBNModel
model
=
getModel
();
if
(
model
!=
null
)
{
model
.
addNode
(
this
);
}
}
protected
void
unregisterNode
(
boolean
reflect
)
{
DBNModel
model
=
getModel
();
if
(
model
!=
null
)
{
model
.
removeNode
(
this
,
reflect
);
}
}
@Override
void
dispose
(
boolean
reflect
)
{
...
...
@@ -178,7 +192,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
synchronized
(
this
)
{
childNodes
.
add
(
newChild
);
}
DBNModel
.
getInstance
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
DBNEvent
.
NodeChange
.
LOAD
,
newChild
));
getModel
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
DBNEvent
.
NodeChange
.
LOAD
,
newChild
));
}
else
{
log
.
error
(
"Cannot add child item to "
+
getNodeName
()
+
". Conditions doesn't met"
);
//$NON-NLS-1$ //$NON-NLS-2$
}
...
...
@@ -262,7 +276,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
return
;
}
this
.
locked
=
true
;
DBNModel
model
=
DBNModel
.
getInstance
();
DBNModel
model
=
getModel
();
try
{
model
.
fireNodeUpdate
(
source
,
this
,
DBNEvent
.
NodeChange
.
LOCK
);
...
...
@@ -361,7 +375,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
monitor
.
done
();
if
(
filtered
)
{
DBNModel
.
getInstance
().
fireNodeUpdate
(
this
,
this
,
DBNEvent
.
NodeChange
.
REFRESH
);
getModel
().
fireNodeUpdate
(
this
,
this
,
DBNEvent
.
NodeChange
.
REFRESH
);
}
}
...
...
@@ -449,7 +463,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
// Refresh children recursive
oldChild
.
reloadChildren
(
monitor
);
}
DBNModel
.
getInstance
().
fireNodeUpdate
(
this
,
oldChild
,
DBNEvent
.
NodeChange
.
REFRESH
);
getModel
().
fireNodeUpdate
(
this
,
oldChild
,
DBNEvent
.
NodeChange
.
REFRESH
);
toList
.
add
(
oldChild
);
added
=
true
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseObject.java
浏览文件 @
8be9b259
...
...
@@ -37,13 +37,13 @@ public class DBNDatabaseObject extends DBNDatabaseNode implements DBSObject
{
super
(
parent
);
this
.
meta
=
meta
;
DBNModel
.
getInstance
().
addNode
(
this
);
registerNode
(
);
}
@Override
protected
void
dispose
(
boolean
reflect
)
{
DBNModel
.
getInstance
().
removeNode
(
this
,
reflect
);
unregisterNode
(
reflect
);
super
.
dispose
(
reflect
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
浏览文件 @
8be9b259
...
...
@@ -23,15 +23,14 @@ import org.eclipse.core.resources.IResourceChangeListener;
import
org.eclipse.core.resources.IResourceDelta
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.DBIconComposite
;
import
org.jkiss.dbeaver.model.DBPApplication
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectState
;
import
org.jkiss.dbeaver.registry.ProjectRegistry
;
import
org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.ArrayList
;
...
...
@@ -51,18 +50,18 @@ import java.util.Map;
public
class
DBNModel
implements
IResourceChangeListener
{
static
final
Log
log
=
Log
.
getLog
(
DBNModel
.
class
);
private
final
DBPApplication
application
;
private
DBNRoot
root
;
private
final
List
<
INavigatorListener
>
listeners
=
new
ArrayList
<
INavigatorListener
>();
private
transient
INavigatorListener
[]
listenersCopy
=
null
;
private
final
Map
<
DBSObject
,
Object
>
nodeMap
=
new
HashMap
<
DBSObject
,
Object
>();
public
DBNModel
(
)
{
public
DBNModel
(
DBPApplication
application
)
{
this
.
application
=
application
;
}
public
static
DBNModel
getInstance
()
{
return
DBeaverCore
.
getInstance
().
getNavigatorModel
();
public
DBPApplication
getApplication
()
{
return
application
;
}
public
void
initialize
()
...
...
@@ -70,25 +69,19 @@ public class DBNModel implements IResourceChangeListener {
if
(
this
.
root
!=
null
)
{
throw
new
IllegalStateException
(
"Can't initialize navigator model more than once"
);
}
this
.
root
=
new
DBNRoot
();
this
.
root
=
new
DBNRoot
(
this
);
// Add all existing projects to root node
final
DBeaverCore
core
=
DBeaverCore
.
getInstance
();
for
(
IProject
project
:
core
.
getLiveProjects
())
{
for
(
IProject
project
:
application
.
getLiveProjects
())
{
root
.
addProject
(
project
,
false
);
}
/*
for (DataSourceDescriptor dataSource : registry.getDataSources()) {
root.addProject(dataSource);
}
*/
core
.
getWorkspace
().
addResourceChangeListener
(
this
);
application
.
getWorkspace
().
addResourceChangeListener
(
this
);
}
public
void
dispose
()
{
DBeaverCore
.
getInstance
()
.
getWorkspace
().
removeResourceChangeListener
(
this
);
application
.
getWorkspace
().
removeResourceChangeListener
(
this
);
this
.
root
.
dispose
(
false
);
synchronized
(
nodeMap
)
{
this
.
nodeMap
.
clear
();
...
...
@@ -193,7 +186,7 @@ public class DBNModel implements IResourceChangeListener {
@Nullable
public
DBNDataSource
getDataSourceByPath
(
String
path
)
throws
DBException
{
DBNProject
project
=
getRoot
().
getProject
(
getProjectRegistry
().
getActiveProject
());
DBNProject
project
=
getRoot
().
getProject
(
application
.
getProjectManager
().
getActiveProject
());
if
(
project
==
null
)
{
log
.
debug
(
"Project node not found"
);
return
null
;
...
...
@@ -204,7 +197,7 @@ public class DBNModel implements IResourceChangeListener {
@Nullable
public
DBNNode
getNodeByPath
(
DBRProgressMonitor
monitor
,
String
path
)
throws
DBException
{
DBNProject
project
=
getRoot
().
getProject
(
getProjectRegistry
().
getActiveProject
());
DBNProject
project
=
getRoot
().
getProject
(
application
.
getProjectManager
().
getActiveProject
());
if
(
project
==
null
)
{
log
.
debug
(
"Project node not found"
);
return
null
;
...
...
@@ -444,8 +437,8 @@ public class DBNModel implements IResourceChangeListener {
// New projectNode
getRoot
().
addProject
(
project
,
true
);
if
(
getProjectRegistry
().
getActiveProject
()
==
null
)
{
getProjectRegistry
().
setActiveProject
(
project
);
if
(
application
.
getProjectManager
().
getActiveProject
()
==
null
)
{
application
.
getProjectManager
().
setActiveProject
(
project
);
}
}
else
{
// Project not found - report an error
...
...
@@ -455,8 +448,8 @@ public class DBNModel implements IResourceChangeListener {
if
(
childDelta
.
getKind
()
==
IResourceDelta
.
REMOVED
)
{
// Project deleted
getRoot
().
removeProject
(
project
);
if
(
project
==
getProjectRegistry
().
getActiveProject
())
{
getProjectRegistry
().
setActiveProject
(
null
);
if
(
project
==
application
.
getProjectManager
().
getActiveProject
())
{
application
.
getProjectManager
().
setActiveProject
(
null
);
}
}
else
{
if
(
childDelta
.
getFlags
()
==
IResourceDelta
.
OPEN
)
{
...
...
@@ -503,8 +496,4 @@ public class DBNModel implements IResourceChangeListener {
}
}
private
static
ProjectRegistry
getProjectRegistry
()
{
return
DBeaverCore
.
getInstance
().
getProjectRegistry
();
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNNode.java
浏览文件 @
8be9b259
...
...
@@ -36,7 +36,7 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject
{
static
final
Log
log
=
Log
.
getLog
(
DBNNode
.
class
);
private
DBNNode
parentNode
;
private
final
DBNNode
parentNode
;
protected
DBNNode
()
{
...
...
@@ -55,17 +55,15 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject
void
dispose
(
boolean
reflect
)
{
this
.
parentNode
=
null
;
}
public
DBNNode
getParentNode
()
{
return
parentNode
;
public
DBNModel
getModel
()
{
return
parentNode
==
null
?
null
:
parentNode
.
getModel
();
}
p
rotected
void
setParentNode
(
DBNNode
parentNode
)
p
ublic
DBNNode
getParentNode
(
)
{
this
.
parentNode
=
parentNode
;
return
parentNode
;
}
public
boolean
isLocked
()
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
浏览文件 @
8be9b259
...
...
@@ -23,13 +23,12 @@ import org.eclipse.core.resources.IResource;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.IAdaptable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.DBPDataSourceRegistry
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.project.DBPResourceHandler
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -42,7 +41,7 @@ public class DBNProject extends DBNResource implements IAdaptable
public
DBNProject
(
DBNNode
parentNode
,
IProject
project
,
DBPResourceHandler
handler
)
{
super
(
parentNode
,
project
,
handler
);
DBeaverCore
.
getInstance
().
getProjectRegistry
().
addProject
(
project
);
getModel
().
getApplication
().
getProjectManager
().
addProject
(
project
);
}
@Override
...
...
@@ -50,7 +49,7 @@ public class DBNProject extends DBNResource implements IAdaptable
{
IProject
project
=
getProject
();
super
.
dispose
(
reflect
);
DBeaverCore
.
getInstance
().
getProjectRegistry
().
removeProject
(
project
);
getModel
().
getApplication
().
getProjectManager
().
removeProject
(
project
);
}
public
IProject
getProject
()
...
...
@@ -109,7 +108,7 @@ public class DBNProject extends DBNResource implements IAdaptable
public
boolean
supportsRename
()
{
// Do not rename active projects
return
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
()
!=
getProject
();
return
getModel
().
getApplication
().
getProjectManager
().
getActiveProject
()
!=
getProject
();
}
@Override
...
...
@@ -134,7 +133,7 @@ public class DBNProject extends DBNResource implements IAdaptable
throw
new
DBException
(
"Can't open project '"
+
getProject
().
getName
()
+
"'"
,
e
);
}
}
D
ataSourceRegistry
dataSourceRegistry
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getDataSourceRegistry
(
getProject
());
D
BPDataSourceRegistry
dataSourceRegistry
=
getModel
().
getApplication
().
getProjectManager
().
getDataSourceRegistry
(
getProject
());
List
<
DBNNode
>
children
=
super
.
readChildNodes
(
monitor
);
if
(
dataSourceRegistry
!=
null
)
{
children
.
add
(
0
,
new
DBNProjectDatabases
(
this
,
dataSourceRegistry
));
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
浏览文件 @
8be9b259
...
...
@@ -18,7 +18,6 @@
package
org.jkiss.dbeaver.model.navigator
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
...
...
@@ -160,7 +159,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
public
void
refreshChildren
()
{
this
.
children
=
null
;
DBeaverCore
.
getInstance
().
getNavigator
Model
().
fireNodeUpdate
(
this
,
this
,
DBNEvent
.
NodeChange
.
STRUCT_REFRESH
);
get
Model
().
fireNodeUpdate
(
this
,
this
,
DBNEvent
.
NodeChange
.
STRUCT_REFRESH
);
}
@Override
...
...
@@ -202,7 +201,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
dataSources
.
add
(
newNode
);
children
=
null
;
if
(
reflect
)
{
DBNModel
.
getInstance
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
newNode
));
getModel
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
newNode
));
}
return
newNode
;
}
...
...
@@ -227,12 +226,13 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
@Override
public
void
handleDataSourceEvent
(
DBPEvent
event
)
{
DBNModel
model
=
getModel
();
switch
(
event
.
getAction
())
{
case
OBJECT_ADD:
if
(
event
.
getObject
()
instanceof
DBSDataSourceContainer
)
{
addDataSource
((
DBSDataSourceContainer
)
event
.
getObject
(),
true
);
}
else
if
(
DBNModel
.
getInstance
()
.
getNodeByObject
(
event
.
getObject
())
==
null
)
{
final
DBNDatabaseNode
parentNode
=
DBNModel
.
getInstance
()
.
getParentNode
(
event
.
getObject
());
}
else
if
(
model
.
getNodeByObject
(
event
.
getObject
())
==
null
)
{
final
DBNDatabaseNode
parentNode
=
model
.
getParentNode
(
event
.
getObject
());
if
(
parentNode
!=
null
)
{
if
(
parentNode
.
getChildNodes
()
==
null
&&
parentNode
.
allowsChildren
())
{
...
...
@@ -265,7 +265,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
if
(
event
.
getObject
()
instanceof
DBSDataSourceContainer
)
{
removeDataSource
((
DBSDataSourceContainer
)
event
.
getObject
());
}
else
{
final
DBNDatabaseNode
node
=
DBNModel
.
getInstance
()
.
getNodeByObject
(
event
.
getObject
());
final
DBNDatabaseNode
node
=
model
.
getNodeByObject
(
event
.
getObject
());
if
(
node
!=
null
&&
node
.
getParentNode
()
instanceof
DBNDatabaseNode
)
{
((
DBNDatabaseNode
)
node
.
getParentNode
()).
removeChildItem
(
event
.
getObject
());
}
...
...
@@ -274,7 +274,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
case
OBJECT_UPDATE:
case
OBJECT_SELECT:
{
DBNNode
dbmNode
=
DBNModel
.
getInstance
()
.
getNodeByObject
(
event
.
getObject
());
DBNNode
dbmNode
=
model
.
getNodeByObject
(
event
.
getObject
());
if
(
dbmNode
!=
null
)
{
DBNEvent
.
NodeChange
nodeChange
;
Boolean
enabled
=
null
;
...
...
@@ -292,7 +292,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
nodeChange
=
DBNEvent
.
NodeChange
.
REFRESH
;
}
}
DBNModel
.
getInstance
()
.
fireNodeUpdate
(
model
.
fireNodeUpdate
(
this
,
dbmNode
,
nodeChange
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
浏览文件 @
8be9b259
...
...
@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.CoreException;
import
org.eclipse.core.runtime.NullProgressMonitor
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.meta.Property
;
...
...
@@ -63,7 +62,7 @@ public class DBNResource extends DBNNode
children
=
null
;
}
if
(
reflect
)
{
DBNModel
.
getInstance
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
REMOVE
,
this
));
getModel
().
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
REMOVE
,
this
));
}
}
super
.
dispose
(
reflect
);
...
...
@@ -147,7 +146,6 @@ public class DBNResource extends DBNNode
protected
List
<
DBNNode
>
readChildNodes
(
DBRProgressMonitor
monitor
)
throws
DBException
{
//final ProjectRegistry projectRegistry = DBeaverCore.getInstance().getProjectRegistry();
List
<
DBNNode
>
result
=
new
ArrayList
<
DBNNode
>();
try
{
IResource
[]
members
=
((
IContainer
)
resource
).
members
();
...
...
@@ -192,7 +190,7 @@ public class DBNResource extends DBNNode
// Sub folder
return
handler
.
makeNavigatorNode
(
this
,
resource
);
}
DBPResourceHandler
resourceHandler
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getResourceHandler
(
resource
);
DBPResourceHandler
resourceHandler
=
getModel
().
getApplication
().
getProjectManager
().
getResourceHandler
(
resource
);
if
(
resourceHandler
==
null
)
{
log
.
debug
(
"Skip resource '"
+
resource
.
getName
()
+
"'"
);
return
null
;
...
...
@@ -349,9 +347,10 @@ public class DBNResource extends DBNNode
void
handleResourceChange
(
IResourceDelta
delta
)
{
DBNModel
model
=
getModel
();
if
(
delta
.
getKind
()
==
IResourceDelta
.
CHANGED
)
{
// Update this node in navigator
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
delta
,
DBNEvent
.
Action
.
UPDATE
,
this
));
model
.
fireNodeEvent
(
new
DBNEvent
(
delta
,
DBNEvent
.
Action
.
UPDATE
,
this
));
}
if
(
children
==
null
)
{
// Child nodes are not yet read so nothing to change here - just return
...
...
@@ -366,7 +365,7 @@ public class DBNResource extends DBNNode
if
(
newChild
!=
null
)
{
children
.
add
(
newChild
);
sortChildren
(
children
);
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
childDelta
,
DBNEvent
.
Action
.
ADD
,
newChild
));
model
.
fireNodeEvent
(
new
DBNEvent
(
childDelta
,
DBNEvent
.
Action
.
ADD
,
newChild
));
if
(
childDelta
.
getKind
()
==
IResourceDelta
.
CHANGED
)
{
// Notify just created resource
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
浏览文件 @
8be9b259
...
...
@@ -19,7 +19,6 @@ package org.jkiss.dbeaver.model.navigator;
import
org.eclipse.core.resources.IProject
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.project.DBPProjectListener
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
...
...
@@ -31,12 +30,14 @@ import java.util.*;
*/
public
class
DBNRoot
extends
DBNNode
implements
DBNContainer
,
DBPProjectListener
{
private
final
DBNModel
model
;
private
List
<
DBNProject
>
projects
=
new
ArrayList
<
DBNProject
>();
public
DBNRoot
()
public
DBNRoot
(
DBNModel
model
)
{
super
();
DBeaverCore
.
getInstance
().
getProjectRegistry
().
addProjectListener
(
this
);
this
.
model
=
model
;
model
.
getApplication
().
getProjectManager
().
addProjectListener
(
this
);
}
@Override
...
...
@@ -46,7 +47,12 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
project
.
dispose
(
reflect
);
}
projects
.
clear
();
DBeaverCore
.
getInstance
().
getProjectRegistry
().
removeProjectListener
(
this
);
model
.
getApplication
().
getProjectManager
().
removeProjectListener
(
this
);
}
@Override
public
DBNModel
getModel
()
{
return
model
;
}
@Override
...
...
@@ -130,7 +136,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject
projectNode
=
new
DBNProject
(
this
,
project
,
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getResourceHandler
(
project
));
model
.
getApplication
().
getProjectManager
().
getResourceHandler
(
project
));
projects
.
add
(
projectNode
);
Collections
.
sort
(
projects
,
new
Comparator
<
DBNProject
>()
{
@Override
...
...
@@ -139,7 +145,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
return
o1
.
getNodeName
().
compareTo
(
o2
.
getNodeName
());
}
});
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
projectNode
));
model
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
ADD
,
projectNode
));
return
projectNode
;
}
...
...
@@ -150,7 +156,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject
projectNode
=
iter
.
next
();
if
(
projectNode
.
getProject
()
==
project
)
{
iter
.
remove
();
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
REMOVE
,
projectNode
));
model
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
REMOVE
,
projectNode
));
projectNode
.
dispose
(
true
);
break
;
}
...
...
@@ -163,10 +169,10 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject
projectNode
=
getProject
(
newValue
);
DBNProject
oldProjectNode
=
getProject
(
oldValue
);
if
(
projectNode
!=
null
)
{
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
UPDATE
,
projectNode
));
model
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
UPDATE
,
projectNode
));
}
if
(
oldProjectNode
!=
null
)
{
DBNModel
.
getInstance
()
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
UPDATE
,
oldProjectNode
));
model
.
fireNodeEvent
(
new
DBNEvent
(
this
,
DBNEvent
.
Action
.
UPDATE
,
oldProjectNode
));
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
浏览文件 @
8be9b259
...
...
@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.*;
import
org.eclipse.swt.widgets.Display
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPProjectManager
;
import
org.jkiss.dbeaver.ui.resources.DefaultResourceHandlerImpl
;
import
org.jkiss.dbeaver.model.project.DBPProjectListener
;
import
org.jkiss.dbeaver.model.project.DBPResourceHandler
;
...
...
@@ -34,7 +35,7 @@ import org.jkiss.utils.CommonUtils;
import
java.util.*
;
public
class
ProjectRegistry
{
public
class
ProjectRegistry
implements
DBPProjectManager
{
static
final
Log
log
=
Log
.
getLog
(
ProjectRegistry
.
class
);
private
static
final
String
PROP_PROJECT_ACTIVE
=
"project.active"
;
...
...
@@ -153,6 +154,7 @@ public class ProjectRegistry {
}
}
@Override
public
void
addProjectListener
(
DBPProjectListener
listener
)
{
synchronized
(
projectListeners
)
{
...
...
@@ -160,6 +162,7 @@ public class ProjectRegistry {
}
}
@Override
public
void
removeProjectListener
(
DBPProjectListener
listener
)
{
synchronized
(
projectListeners
)
{
...
...
@@ -167,6 +170,7 @@ public class ProjectRegistry {
}
}
@Override
public
DBPResourceHandler
getResourceHandler
(
IResource
resource
)
{
if
(
resource
==
null
||
resource
.
isHidden
()
||
resource
.
isPhantom
())
{
...
...
@@ -255,6 +259,7 @@ public class ProjectRegistry {
return
dataSourceRegistry
;
}
@Override
public
IProject
getActiveProject
()
{
return
activeProject
;
...
...
@@ -319,6 +324,7 @@ public class ProjectRegistry {
* Otherwise set of workspace synchronize problems occur
* @param project project
*/
@Override
public
void
addProject
(
IProject
project
)
{
if
(
busyProjects
.
contains
(
project
))
{
...
...
@@ -332,6 +338,7 @@ public class ProjectRegistry {
projectDatabases
.
put
(
project
,
new
DataSourceRegistry
(
project
));
}
@Override
public
void
removeProject
(
IProject
project
)
{
// Remove project from registry
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/scripts/ScriptsExportUtils.java
浏览文件 @
8be9b259
...
...
@@ -18,18 +18,17 @@
package
org.jkiss.dbeaver.tools.scripts
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.ui.resources.ScriptsHandlerImpl
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.navigator.DBNProject
;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.ui.resources.ScriptsHandlerImpl
;
/**
* Utils
...
...
@@ -42,7 +41,7 @@ class ScriptsExportUtils {
{
final
IProject
activeProject
=
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
();
if
(
activeProject
==
null
)
{
return
DB
NModel
.
getInstance
().
getRoot
();
return
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
getRoot
();
}
final
DBNProject
projectNode
=
DBeaverCore
.
getInstance
().
getNavigatorModel
().
getRoot
().
getProject
(
activeProject
);
DBNNode
scriptsNode
=
projectNode
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/EntityHyperlink.java
浏览文件 @
8be9b259
...
...
@@ -21,10 +21,10 @@ import org.eclipse.jface.text.IRegion;
import
org.eclipse.jface.text.hyperlink.IHyperlink
;
import
org.eclipse.ui.PlatformUI
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
...
...
@@ -111,7 +111,7 @@ public class EntityHyperlink implements IHyperlink
monitor
.
beginTask
(
"Resolve object "
+
reference
.
getName
(),
1
);
try
{
DBSObject
object
=
reference
.
resolveObject
(
monitor
);
node
=
DB
NModel
.
getInstance
().
getNodeByObject
(
monitor
,
object
,
true
);
node
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
getNodeByObject
(
monitor
,
object
,
true
);
}
catch
(
DBException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
浏览文件 @
8be9b259
...
...
@@ -19,11 +19,11 @@ package org.jkiss.dbeaver.ui.search;
import
org.eclipse.jface.dialogs.DialogPage
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNModel
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
...
...
@@ -77,12 +77,12 @@ public abstract class AbstractSearchPage extends DialogPage implements IObjectSe
while
(
st
.
hasMoreTokens
())
{
String
nodePath
=
st
.
nextToken
();
try
{
DBNDataSource
dsNode
=
DB
NModel
.
getInstance
().
getDataSourceByPath
(
nodePath
);
DBNDataSource
dsNode
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
getDataSourceByPath
(
nodePath
);
if
(
brokenDataSources
.
contains
(
dsNode
))
{
continue
;
}
DBNNode
node
=
DB
NModel
.
getInstance
().
getNodeByPath
(
monitor
,
nodePath
);
DBNNode
node
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
().
getNodeByPath
(
monitor
,
nodePath
);
if
(
node
!=
null
)
{
result
.
add
(
node
);
}
else
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
浏览文件 @
8be9b259
...
...
@@ -17,6 +17,7 @@
*/
package
org.jkiss.dbeaver.ui.search.data
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.DBException
;
...
...
@@ -71,7 +72,7 @@ public class SearchDataQuery implements IObjectSearchQuery {
}
// Search
DBNModel
dbnModel
=
DB
NModel
.
getInstance
();
DBNModel
dbnModel
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
();
monitor
.
beginTask
(
"Search \""
+
searchString
+
"\" in "
+
params
.
sources
.
size
()
+
" table(s) / "
+
dataSources
.
size
()
+
" database(s)"
,
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/DatabaseNavigatorTree.java
浏览文件 @
8be9b259
...
...
@@ -66,7 +66,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
{
super
(
parent
,
SWT
.
NONE
);
this
.
setLayout
(
new
FillLayout
());
this
.
model
=
DB
NModel
.
getInstance
();
this
.
model
=
DB
eaverCore
.
getInstance
().
getNavigatorModel
();
this
.
model
.
addListener
(
this
);
addDisposeListener
(
new
DisposeListener
()
{
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录