Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
6599e464
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,发现更多精彩内容 >>
提交
6599e464
编写于
6月 24, 2017
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Show implicit nav nodes (ER Diagrams, Bookmarks, etc) always
上级
4add1384
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
81 addition
and
10 deletion
+81
-10
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
....core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
+20
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageProjectSettings.java
...jkiss/dbeaver/ui/preferences/PrefPageProjectSettings.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/ResourceUtils.java
...ore/src/org/jkiss/dbeaver/ui/resources/ResourceUtils.java
+25
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/BookmarksHandlerImpl.java
.../dbeaver/ui/resources/bookmarks/BookmarksHandlerImpl.java
+2
-0
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/ERDResourceHandler.java
...g/jkiss/dbeaver/ext/erd/navigator/ERDResourceHandler.java
+2
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
...el/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
+7
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
...del/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
+12
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
...el/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
+12
-5
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
浏览文件 @
6599e464
...
...
@@ -231,11 +231,17 @@ public class ProjectRegistry implements DBPProjectManager, DBPExternalFileManage
return
handler
;
}
public
Collection
<
ResourceHandlerDescriptor
>
getResourceHandlers
()
@Override
public
DBPResourceHandler
[]
getAllResourceHandlers
()
{
return
handlerDescriptors
;
DBPResourceHandler
[]
handlers
=
new
DBPResourceHandler
[
handlerDescriptors
.
size
()];
for
(
int
i
=
0
;
i
<
handlerDescriptors
.
size
();
i
++)
{
handlers
[
i
]
=
handlerDescriptors
.
get
(
i
).
getHandler
();
}
return
handlers
;
}
@Override
public
IFolder
getResourceDefaultRoot
(
IProject
project
,
Class
<?
extends
DBPResourceHandler
>
handlerType
,
boolean
forceCreate
)
{
if
(
project
==
null
)
{
...
...
@@ -244,9 +250,14 @@ public class ProjectRegistry implements DBPProjectManager, DBPExternalFileManage
for
(
ResourceHandlerDescriptor
rhd
:
handlerDescriptors
)
{
DBPResourceHandler
handler
=
rhd
.
getHandler
();
if
(
handler
!=
null
&&
handler
.
getClass
()
==
handlerType
)
{
final
IFolder
realFolder
=
project
.
getFolder
(
rhd
.
getDefaultRoot
(
project
));
String
defaultRoot
=
rhd
.
getDefaultRoot
(
project
);
if
(
defaultRoot
==
null
)
{
// No root
return
null
;
}
final
IFolder
realFolder
=
project
.
getFolder
(
defaultRoot
);
if
(
!
realFolder
.
exists
()
&&
forceCreate
)
{
if
(
forceCreate
&&
!
realFolder
.
exists
()
)
{
try
{
realFolder
.
create
(
true
,
true
,
new
NullProgressMonitor
());
}
catch
(
CoreException
e
)
{
...
...
@@ -277,6 +288,11 @@ public class ProjectRegistry implements DBPProjectManager, DBPExternalFileManage
return
dataSourceRegistry
;
}
public
ResourceHandlerDescriptor
[]
getResourceHandlerDescriptors
()
{
return
handlerDescriptors
.
toArray
(
new
ResourceHandlerDescriptor
[
handlerDescriptors
.
size
()]);
}
public
DataSourceRegistry
getActiveDataSourceRegistry
()
{
if
(
activeProject
==
null
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageProjectSettings.java
浏览文件 @
6599e464
...
...
@@ -171,7 +171,7 @@ public class PrefPageProjectSettings extends AbstractPrefPage implements IWorkbe
protected
void
performDefaults
()
{
resourceTable
.
removeAll
();
for
(
ResourceHandlerDescriptor
descriptor
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getResourceHandlers
())
{
for
(
ResourceHandlerDescriptor
descriptor
:
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getResourceHandler
Descriptor
s
())
{
if
(!
descriptor
.
isManagable
())
{
continue
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/ResourceUtils.java
浏览文件 @
6599e464
...
...
@@ -22,11 +22,14 @@ import org.eclipse.core.resources.IProject;
import
org.eclipse.core.resources.IResource
;
import
org.eclipse.core.runtime.*
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
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.DBPDataSourceFolder
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
...
...
@@ -250,6 +253,10 @@ public class ResourceUtils {
if
(
scriptsFolder
==
null
)
{
scriptsFolder
=
scriptsRootFolder
;
}
if
(!
scriptsFolder
.
exists
())
{
scriptsFolder
.
create
(
true
,
true
,
new
NullProgressMonitor
());
}
if
(
CommonUtils
.
equalObjects
(
scriptsRootFolder
,
scriptsFolder
))
{
// We are in the root folder
if
(
dataSourceContainer
!=
null
)
{
...
...
@@ -298,4 +305,22 @@ public class ResourceUtils {
return
tempFile
;
}
public
static
void
checkFolderExists
(
IFolder
folder
)
throws
DBException
{
checkFolderExists
(
folder
,
new
VoidProgressMonitor
());
}
public
static
void
checkFolderExists
(
IFolder
folder
,
DBRProgressMonitor
monitor
)
throws
DBException
{
if
(!
folder
.
exists
())
{
try
{
folder
.
create
(
true
,
true
,
monitor
.
getNestedMonitor
());
}
catch
(
CoreException
e
)
{
throw
new
DBException
(
"Can't create folder '"
+
folder
.
getFullPath
()
+
"'"
,
e
);
}
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/BookmarksHandlerImpl.java
浏览文件 @
6599e464
...
...
@@ -36,6 +36,7 @@ import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.resources.AbstractResourceHandler
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.utils.ArrayUtils
;
...
...
@@ -212,6 +213,7 @@ public class BookmarksHandlerImpl extends AbstractResourceHandler {
if
(
folder
==
null
)
{
throw
new
DBException
(
"Can't detect folder for bookmark"
);
}
ResourceUtils
.
checkFolderExists
(
folder
);
IFile
file
=
ContentUtils
.
getUniqueFile
(
folder
,
...
...
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/ERDResourceHandler.java
浏览文件 @
6599e464
...
...
@@ -34,6 +34,7 @@ import org.jkiss.dbeaver.model.navigator.DBNResource;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.ui.resources.AbstractResourceHandler
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -130,6 +131,7 @@ public class ERDResourceHandler extends AbstractResourceHandler {
if
(
folder
==
null
)
{
throw
new
DBException
(
"Can't detect folder for diagram"
);
}
ResourceUtils
.
checkFolderExists
(
folder
,
monitor
);
final
IFile
file
=
ContentUtils
.
getUniqueFile
(
folder
,
CommonUtils
.
escapeFileName
(
title
),
ERD_EXT
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
浏览文件 @
6599e464
...
...
@@ -17,15 +17,21 @@
package
org.jkiss.dbeaver.model.app
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.resources.IResource
;
import
org.jkiss.code.Nullable
;
/**
* ProjectManager
*/
public
interface
DBPProjectManager
{
DBPResourceHandler
[]
getAllResourceHandlers
();
@Nullable
DBPResourceHandler
getResourceHandler
(
IResource
resource
);
@Nullable
IFolder
getResourceDefaultRoot
(
IProject
project
,
Class
<?
extends
DBPResourceHandler
>
handlerType
,
boolean
forceCreate
);
IProject
getActiveProject
();
void
setActiveProject
(
IProject
project
);
...
...
@@ -35,4 +41,5 @@ public interface DBPProjectManager
void
removeProjectListener
(
DBPProjectListener
listener
);
DBPDataSourceRegistry
getDataSourceRegistry
(
IProject
project
);
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
浏览文件 @
6599e464
...
...
@@ -142,6 +142,18 @@ public class DBNProject extends DBNResource
return
children
;
}
@Override
protected
IResource
[]
addImplicitMembers
(
IResource
[]
members
)
{
for
(
DBPResourceHandler
rh
:
getModel
().
getPlatform
().
getProjectManager
().
getAllResourceHandlers
())
{
IFolder
rhDefaultRoot
=
getModel
().
getPlatform
().
getProjectManager
().
getResourceDefaultRoot
(
getProject
(),
rh
.
getClass
(),
false
);
if
(
rhDefaultRoot
!=
null
&&
!
rhDefaultRoot
.
exists
())
{
// Add as explicit member
members
=
ArrayUtils
.
add
(
IResource
.
class
,
members
,
rhDefaultRoot
);
}
}
return
super
.
addImplicitMembers
(
members
);
}
public
DBNResource
findResource
(
IResource
resource
)
{
List
<
IResource
>
path
=
new
ArrayList
<>();
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
浏览文件 @
6599e464
...
...
@@ -150,13 +150,16 @@ public class DBNResource extends DBNNode// implements IContributorResourceAdapte
{
List
<
DBNNode
>
result
=
new
ArrayList
<>();
try
{
if
(
resource
.
exists
())
{
IResource
[]
members
=
((
IContainer
)
resource
).
members
(
false
);
members
=
addImplicitMembers
(
members
);
for
(
IResource
member
:
members
)
{
DBNNode
newChild
=
makeNode
(
member
);
if
(
newChild
!=
null
)
{
result
.
add
(
newChild
);
}
}
}
}
catch
(
CoreException
e
)
{
throw
new
DBException
(
"Can't read container's members"
,
e
);
}
...
...
@@ -170,6 +173,10 @@ public class DBNResource extends DBNNode// implements IContributorResourceAdapte
}
}
protected
IResource
[]
addImplicitMembers
(
IResource
[]
members
)
{
return
members
;
}
DBNResource
getChild
(
IResource
resource
)
{
if
(
children
==
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录