Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
07ccaefd
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,发现更多精彩内容 >>
提交
07ccaefd
编写于
3月 03, 2019
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#5373 Local folders move enhancements. Navigator drag-n-drop additions.
上级
941114f5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
79 addition
and
18 deletion
+79
-18
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceFolder.java
...core/src/org/jkiss/dbeaver/registry/DataSourceFolder.java
+16
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceFolder.java
...odel/src/org/jkiss/dbeaver/model/DBPDataSourceFolder.java
+4
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
.../src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
+4
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNLocalFolder.java
...src/org/jkiss/dbeaver/model/navigator/DBNLocalFolder.java
+10
-3
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java
...or/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java
+45
-12
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceFolder.java
浏览文件 @
07ccaefd
...
...
@@ -67,11 +67,11 @@ public class DataSourceFolder implements DBPDataSourceFolder
return
parent
;
}
public
void
setParent
(
DataSourceFolder
parent
)
{
public
void
setParent
(
D
BPD
ataSourceFolder
parent
)
{
if
(
this
.
parent
!=
null
)
{
this
.
parent
.
children
.
remove
(
this
);
}
this
.
parent
=
parent
;
this
.
parent
=
(
DataSourceFolder
)
parent
;
if
(
this
.
parent
!=
null
)
{
this
.
parent
.
children
.
add
(
this
);
}
...
...
@@ -87,6 +87,20 @@ public class DataSourceFolder implements DBPDataSourceFolder
return
registry
;
}
@Override
public
boolean
canMoveTo
(
DBPDataSourceFolder
folder
)
{
return
folder
!=
this
&&
!
this
.
isParentOf
(
folder
);
}
private
boolean
isParentOf
(
DBPDataSourceFolder
folder
)
{
for
(
DBPDataSourceFolder
p
=
folder
;
p
!=
null
;
p
=
p
.
getParent
())
{
if
(
p
==
this
)
{
return
true
;
}
}
return
false
;
}
public
DataSourceFolder
getChild
(
String
name
)
{
for
(
DataSourceFolder
child
:
children
)
{
if
(
child
.
getName
().
equals
(
name
))
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceFolder.java
浏览文件 @
07ccaefd
...
...
@@ -29,7 +29,11 @@ public interface DBPDataSourceFolder extends DBPNamedObject2 {
DBPDataSourceFolder
getParent
();
void
setParent
(
DBPDataSourceFolder
parent
);
DBPDataSourceFolder
[]
getChildren
();
DBPDataSourceRegistry
getDataSourceRegistry
();
boolean
canMoveTo
(
DBPDataSourceFolder
folder
);
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
浏览文件 @
07ccaefd
...
...
@@ -232,7 +232,8 @@ public class DBNDataSource extends DBNDatabaseNode implements DBNContainer, IAda
@Override
public
boolean
supportsDrop
(
DBNNode
otherNode
)
{
return
otherNode
==
null
||
otherNode
instanceof
DBNDataSource
;
return
otherNode
==
null
||
otherNode
instanceof
DBNDataSource
||
(
otherNode
instanceof
DBNLocalFolder
&&
((
DBNLocalFolder
)
otherNode
).
getFolder
().
canMoveTo
(
dataSource
.
getFolder
()));
}
@Override
...
...
@@ -244,6 +245,8 @@ public class DBNDataSource extends DBNDatabaseNode implements DBNContainer, IAda
if
(!((
DBNDataSource
)
node
).
setFolder
(
folder
))
{
return
;
}
}
else
if
(
node
instanceof
DBNLocalFolder
)
{
((
DBNLocalFolder
)
node
).
getFolder
().
setParent
(
dataSource
.
getFolder
());
}
}
DBNModel
.
updateConfigAndRefreshDatabases
(
this
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNLocalFolder.java
浏览文件 @
07ccaefd
...
...
@@ -53,6 +53,10 @@ public class DBNLocalFolder extends DBNNode implements DBNContainer
return
folder
;
}
public
void
setFolder
(
DBPDataSourceFolder
folder
)
{
this
.
folder
=
folder
;
}
public
DBPDataSourceRegistry
getDataSourceRegistry
()
{
return
((
DBNProjectDatabases
)
parentNode
).
getDataSourceRegistry
();
}
...
...
@@ -199,15 +203,17 @@ public class DBNLocalFolder extends DBNNode implements DBNContainer
@Override
public
boolean
supportsDrop
(
DBNNode
otherNode
)
{
return
otherNode
==
null
||
otherNode
instanceof
DBNDataSource
;
return
otherNode
==
null
||
otherNode
instanceof
DBNDataSource
||
(
otherNode
instanceof
DBNLocalFolder
&&
((
DBNLocalFolder
)
otherNode
).
getFolder
().
canMoveTo
(
getFolder
()));
}
@Override
public
void
dropNodes
(
Collection
<
DBNNode
>
nodes
)
throws
DBException
{
public
void
dropNodes
(
Collection
<
DBNNode
>
nodes
)
throws
DBException
{
for
(
DBNNode
node
:
nodes
)
{
if
(
node
instanceof
DBNDataSource
)
{
((
DBNDataSource
)
node
).
setFolder
(
folder
);
}
else
if
(
node
instanceof
DBNLocalFolder
)
{
((
DBNLocalFolder
)
node
).
getFolder
().
setParent
(
this
.
getFolder
());
}
}
DBNModel
.
updateConfigAndRefreshDatabases
(
this
);
...
...
@@ -244,4 +250,5 @@ public class DBNLocalFolder extends DBNNode implements DBNContainer
public
String
toString
()
{
return
folder
.
getFolderPath
();
}
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/NavigatorUtils.java
浏览文件 @
07ccaefd
...
...
@@ -23,10 +23,7 @@ import org.eclipse.jface.viewers.*;
import
org.eclipse.swt.dnd.*
;
import
org.eclipse.swt.events.MenuEvent
;
import
org.eclipse.swt.events.MenuListener
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Menu
;
import
org.eclipse.swt.widgets.MenuItem
;
import
org.eclipse.swt.widgets.TreeItem
;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.*
;
import
org.eclipse.ui.dialogs.PreferencesUtil
;
import
org.eclipse.ui.handlers.HandlerUtil
;
...
...
@@ -61,6 +58,7 @@ import org.jkiss.utils.ArrayUtils;
import
org.jkiss.utils.CommonUtils
;
import
java.util.*
;
import
java.util.List
;
/**
* Navigator utils
...
...
@@ -386,12 +384,16 @@ public class NavigatorUtils {
private
boolean
isDropSupported
(
DropTargetEvent
event
)
{
if
(
TreeNodeTransfer
.
getInstance
().
isSupportedType
(
event
.
currentDataType
)
&&
event
.
item
instanceof
TreeItem
)
{
TreeItem
treeItem
=
(
TreeItem
)
event
.
item
;
Object
curObject
=
treeItem
.
getData
();
if
(
TreeNodeTransfer
.
getInstance
().
isSupportedType
(
event
.
currentDataType
))
{
Object
curObject
;
if
(
event
.
item
instanceof
Item
)
{
curObject
=
event
.
item
.
getData
();
}
else
{
curObject
=
null
;
}
@SuppressWarnings
(
"unchecked"
)
Collection
<
DBNNode
>
nodesToDrop
=
(
Collection
<
DBNNode
>)
event
.
data
;
if
(
curObject
instanceof
DBNNode
)
{
@SuppressWarnings
(
"unchecked"
)
Collection
<
DBNNode
>
nodesToDrop
=
(
Collection
<
DBNNode
>)
event
.
data
;
if
(!
CommonUtils
.
isEmpty
(
nodesToDrop
))
{
for
(
DBNNode
node
:
nodesToDrop
)
{
if
(!((
DBNNode
)
curObject
).
supportsDrop
(
node
))
{
...
...
@@ -402,6 +404,22 @@ public class NavigatorUtils {
}
else
{
return
((
DBNNode
)
curObject
).
supportsDrop
(
null
);
}
}
else
if
(
curObject
==
null
)
{
// Drop to empty area
if
(!
CommonUtils
.
isEmpty
(
nodesToDrop
))
{
for
(
DBNNode
node
:
nodesToDrop
)
{
if
(!(
node
instanceof
DBNDataSource
))
{
return
false
;
}
}
return
true
;
}
else
{
Widget
widget
=
event
.
widget
;
if
(
widget
instanceof
DropTarget
)
{
widget
=
((
DropTarget
)
widget
).
getControl
();
}
return
widget
==
viewer
.
getControl
();
}
}
}
return
false
;
...
...
@@ -409,9 +427,13 @@ public class NavigatorUtils {
private
void
moveNodes
(
DropTargetEvent
event
)
{
if
(
TreeNodeTransfer
.
getInstance
().
isSupportedType
(
event
.
currentDataType
)
&&
event
.
item
instanceof
TreeItem
)
{
TreeItem
treeItem
=
(
TreeItem
)
event
.
item
;
Object
curObject
=
treeItem
.
getData
();
if
(
TreeNodeTransfer
.
getInstance
().
isSupportedType
(
event
.
currentDataType
))
{
Object
curObject
;
if
(
event
.
item
instanceof
Item
)
{
curObject
=
event
.
item
.
getData
();
}
else
{
curObject
=
null
;
}
if
(
curObject
instanceof
DBNNode
)
{
Collection
<
DBNNode
>
nodesToDrop
=
TreeNodeTransfer
.
getInstance
().
getObject
();
try
{
...
...
@@ -419,6 +441,17 @@ public class NavigatorUtils {
}
catch
(
DBException
e
)
{
DBWorkbench
.
getPlatformUI
().
showError
(
"Drop error"
,
"Can't drop node"
,
e
);
}
}
else
if
(
curObject
==
null
)
{
for
(
DBNNode
node
:
TreeNodeTransfer
.
getInstance
().
getObject
())
{
if
(
node
instanceof
DBNDataSource
)
{
((
DBNDataSource
)
node
).
setFolder
(
null
);
}
else
if
(
node
instanceof
DBNLocalFolder
)
{
((
DBNLocalFolder
)
node
).
getFolder
().
setParent
(
null
);
}
else
{
continue
;
}
DBNModel
.
updateConfigAndRefreshDatabases
(
node
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录