Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8e444cc1
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
8e444cc1
编写于
9月 20, 2020
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#9822 Action handler added + hover tracking (disabled)
Former-commit-id:
9e0393e3
上级
1e51f6ef
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
75 addition
and
9 deletion
+75
-9
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/INavigatorItemRenderer.java
...rg/jkiss/dbeaver/ui/navigator/INavigatorItemRenderer.java
+2
-0
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/INavigatorNodeActionHandler.java
...iss/dbeaver/ui/navigator/INavigatorNodeActionHandler.java
+1
-1
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceConfiguration.java
...i/navigator/actions/node/NNAHDataSourceConfiguration.java
+1
-1
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceReadOnly.java
...ver/ui/navigator/actions/node/NNAHDataSourceReadOnly.java
+1
-1
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
...eaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
+2
-1
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
.../dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
+34
-4
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/DefaultNavigatorNodeRenderer.java
...r/ui/navigator/database/DefaultNavigatorNodeRenderer.java
+5
-0
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/StatisticsNavigatorNodeRenderer.java
...i/navigator/database/StatisticsNavigatorNodeRenderer.java
+29
-1
未找到文件。
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/INavigatorItemRenderer.java
浏览文件 @
8e444cc1
...
...
@@ -32,4 +32,6 @@ public interface INavigatorItemRenderer {
void
paintNodeDetails
(
DBNNode
node
,
Tree
tree
,
GC
gc
,
Event
event
);
void
showDetailsToolTip
(
DBNNode
node
,
Tree
tree
,
Event
event
);
void
performAction
(
DBNNode
node
,
Tree
tree
,
Event
event
,
boolean
defaultAction
);
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/INavigatorNodeActionHandler.java
浏览文件 @
8e444cc1
...
...
@@ -34,6 +34,6 @@ public interface INavigatorNodeActionHandler {
String
getNodeActionToolTip
(
INavigatorModelView
view
,
DBNNode
node
);
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
);
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
,
boolean
defaultAction
);
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceConfiguration.java
浏览文件 @
8e444cc1
...
...
@@ -45,7 +45,7 @@ public class NNAHDataSourceConfiguration extends NavigatorNodeActionHandlerAbstr
}
@Override
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
)
{
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
,
boolean
defaultAction
)
{
}
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceReadOnly.java
浏览文件 @
8e444cc1
...
...
@@ -49,7 +49,7 @@ public class NNAHDataSourceReadOnly extends NavigatorNodeActionHandlerAbstract {
}
@Override
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
)
{
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
,
boolean
defaultAction
)
{
}
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
浏览文件 @
8e444cc1
...
...
@@ -61,7 +61,8 @@ public class NNAHDataSourceTunnel extends NavigatorNodeActionHandlerAbstract {
}
@Override
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
)
{
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
,
boolean
defaultAction
)
{
}
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
浏览文件 @
8e444cc1
...
...
@@ -136,8 +136,26 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
this
.
setItemRenderer
(
new
DefaultNavigatorNodeRenderer
());
{
//tree.addListener(SWT.EraseItem, event -> eraseItem(tree, event));
tree
.
addListener
(
SWT
.
PaintItem
,
event
->
paintItem
(
tree
,
event
));
//tree.addListener(SWT.EraseItem, event -> onEraseItem(tree, event));
tree
.
addListener
(
SWT
.
PaintItem
,
event
->
onPaintItem
(
tree
,
event
));
if
(
false
)
{
// See comments for StatisticsNavigatorNodeRenderer.PAINT_ACTION_HOVER
Listener
mouseListener
=
e
->
{
TreeItem
item
=
tree
.
getItem
(
new
Point
(
e
.
x
,
e
.
y
));
if
(
item
!=
null
)
{
Rectangle
itemBounds
=
item
.
getBounds
();
Point
treeSize
=
tree
.
getSize
();
tree
.
redraw
(
itemBounds
.
x
,
itemBounds
.
y
,
treeSize
.
x
,
treeSize
.
y
,
false
);
}
};
tree
.
addListener
(
SWT
.
MouseMove
,
mouseListener
);
//tree.addListener(SWT.MouseHover, mouseListener);
tree
.
addListener
(
SWT
.
MouseEnter
,
mouseListener
);
tree
.
addListener
(
SWT
.
MouseExit
,
mouseListener
);
}
tree
.
addListener
(
SWT
.
MouseDown
,
event
->
onItemMouseDown
(
tree
,
event
,
false
));
tree
.
addListener
(
SWT
.
MouseDoubleClick
,
event
->
onItemMouseDown
(
tree
,
event
,
true
));
}
}
...
...
@@ -178,7 +196,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
this
.
itemRenderer
=
itemRenderer
;
}
private
void
e
raseItem
(
Tree
tree
,
Event
event
)
{
private
void
onE
raseItem
(
Tree
tree
,
Event
event
)
{
if
(
itemRenderer
!=
null
)
{
Object
element
=
event
.
item
.
getData
();
if
(
element
instanceof
DBNNode
)
{
...
...
@@ -187,7 +205,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
}
}
private
void
p
aintItem
(
Tree
tree
,
Event
event
)
{
private
void
onP
aintItem
(
Tree
tree
,
Event
event
)
{
if
(
itemRenderer
!=
null
)
{
Object
element
=
event
.
item
.
getData
();
if
(
element
instanceof
DBNNode
)
{
...
...
@@ -196,6 +214,18 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
}
}
private
void
onItemMouseDown
(
Tree
tree
,
Event
event
,
boolean
defaultAction
)
{
if
(
itemRenderer
!=
null
)
{
TreeItem
item
=
tree
.
getItem
(
new
Point
(
event
.
x
,
event
.
y
));
if
(
item
!=
null
)
{
Object
element
=
item
.
getData
();
if
(
element
instanceof
DBNNode
)
{
itemRenderer
.
performAction
((
DBNNode
)
element
,
tree
,
event
,
defaultAction
);
}
}
}
}
public
void
setInput
(
DBNNode
rootNode
)
{
treeViewer
.
setInput
(
new
DatabaseNavigatorContent
(
rootNode
));
}
...
...
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/DefaultNavigatorNodeRenderer.java
浏览文件 @
8e444cc1
...
...
@@ -90,4 +90,9 @@ public class DefaultNavigatorNodeRenderer implements INavigatorItemRenderer {
}
@Override
public
void
performAction
(
DBNNode
node
,
Tree
tree
,
Event
event
,
boolean
defaultAction
)
{
}
}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/StatisticsNavigatorNodeRenderer.java
浏览文件 @
8e444cc1
...
...
@@ -72,6 +72,10 @@ public class StatisticsNavigatorNodeRenderer extends DefaultNavigatorNodeRendere
private
static
final
RGB
HOST_NAME_FG_DARK
=
new
RGB
(
140
,
140
,
140
);
private
static
final
RGB
HOST_NAME_FG_LIGHT
=
new
RGB
(
105
,
105
,
105
);
// Disabled because of performance and a couple of glitches
// Sometimes hover bg remains after mouse move
private
static
final
boolean
PAINT_ACTION_HOVER
=
false
;
private
final
INavigatorModelView
view
;
private
static
final
ByteNumberFormat
numberFormat
=
new
ByteNumberFormat
();
...
...
@@ -136,6 +140,17 @@ public class StatisticsNavigatorNodeRenderer extends DefaultNavigatorNodeRendere
}
}
@Override
public
void
performAction
(
DBNNode
node
,
Tree
tree
,
Event
event
,
boolean
defaultAction
)
{
if
(
DBWorkbench
.
getPlatform
().
getPreferenceStore
().
getBoolean
(
NavigatorPreferences
.
NAVIGATOR_SHOW_NODE_ACTIONS
))
{
// Detect active action
INavigatorNodeActionHandler
overActionButton
=
getActionButtonFor
(
node
,
tree
,
event
);
if
(
overActionButton
!=
null
)
{
overActionButton
.
handleNodeAction
(
view
,
node
,
event
,
defaultAction
);
}
}
}
private
String
getDetailsTipText
(
DBNNode
element
,
Tree
tree
,
Event
event
)
{
if
(
element
instanceof
DBNDatabaseNode
)
{
if
(
element
instanceof
DBNDataSource
)
{
...
...
@@ -282,8 +297,21 @@ public class StatisticsNavigatorNodeRenderer extends DefaultNavigatorNodeRendere
// event.height * 2 / 3;
xPos
-=
imageSize
;
widthOccupied
+=
imageSize
;
//gc.fillRectangle(xPos, event.y + (event.height - imageSize) / 2, imageBounds.width, imageBounds.height);
Point
mousePos
=
tree
.
getDisplay
().
getCursorLocation
();
Point
itemPos
=
tree
.
toDisplay
(
xPos
,
event
.
y
+
(
event
.
height
-
imageSize
)
/
2
);
if
(
PAINT_ACTION_HOVER
)
{
if
(
mousePos
.
x
>=
itemPos
.
x
-
1
&&
mousePos
.
x
<=
itemPos
.
x
+
imageBounds
.
width
+
2
&&
mousePos
.
y
>
itemPos
.
y
-
1
&&
mousePos
.
y
<
itemPos
.
y
+
imageBounds
.
height
+
2
)
{
Color
oldBackground
=
gc
.
getBackground
();
Color
overBG
=
UIUtils
.
getSharedColor
(
new
RGB
(
200
,
200
,
255
));
gc
.
setBackground
(
overBG
);
gc
.
fillRoundRectangle
(
xPos
-
1
,
event
.
y
+
(
event
.
height
-
imageSize
)
/
2
-
1
,
imageBounds
.
width
+
2
,
imageBounds
.
height
+
2
,
2
,
2
);
gc
.
setBackground
(
oldBackground
);
}
}
gc
.
drawImage
(
image
,
xPos
,
event
.
y
+
(
event
.
height
-
imageSize
)
/
2
);
// gc.drawImage(image,
// 0, 0, imageBounds.width, imageBounds.height,
// xPos, event.y + (event.height - imageSize) / 2, imageBounds.width, imageBounds.height);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录