Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
3e3765c3
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,发现更多精彩内容 >>
提交
3e3765c3
编写于
8月 07, 2019
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#6474 Virtual unique key define/clear actions fix
Former-commit-id:
1cf9cb97
上级
cdb80c7b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
37 addition
and
28 deletion
+37
-28
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDRowIdentifier.java
...el/src/org/jkiss/dbeaver/model/data/DBDRowIdentifier.java
+3
-0
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
.../jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+33
-27
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ValidateUniqueKeyUsageDialog.java
...r/ui/controls/resultset/ValidateUniqueKeyUsageDialog.java
+1
-1
未找到文件。
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDRowIdentifier.java
浏览文件 @
3e3765c3
...
...
@@ -98,4 +98,7 @@ public class DBDRowIdentifier implements DBPObject {
}
}
public
void
clearAttributes
()
{
attributes
.
clear
();
}
}
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
浏览文件 @
3e3765c3
...
...
@@ -73,7 +73,10 @@ import org.jkiss.dbeaver.model.sql.SQLQueryContainer;
import
org.jkiss.dbeaver.model.sql.SQLScriptElement
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.model.virtual.*
;
import
org.jkiss.dbeaver.model.virtual.DBVEntity
;
import
org.jkiss.dbeaver.model.virtual.DBVEntityConstraint
;
import
org.jkiss.dbeaver.model.virtual.DBVTransformSettings
;
import
org.jkiss.dbeaver.model.virtual.DBVUtils
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.DBeaverNotifications
;
import
org.jkiss.dbeaver.tools.transfer.registry.DataTransferNodeDescriptor
;
...
...
@@ -2319,6 +2322,11 @@ public class ResultSetViewer extends Viewer
if
(
dataSource
==
null
)
{
return
;
}
VirtualForeignKeyEditAction
fkAddAction
=
new
VirtualForeignKeyEditAction
();
if
(
fkAddAction
.
isEnabled
())
{
vmMenu
.
add
(
fkAddAction
);
}
VirtualUniqueKeyEditAction
vkAction
=
new
VirtualUniqueKeyEditAction
(
true
);
if
(
vkAction
.
isEnabled
())
{
vmMenu
.
add
(
vkAction
);
...
...
@@ -2327,10 +2335,6 @@ public class ResultSetViewer extends Viewer
if
(
vkRemoveAction
.
isEnabled
())
{
vmMenu
.
add
(
vkRemoveAction
);
}
VirtualForeignKeyEditAction
fkAddAction
=
new
VirtualForeignKeyEditAction
();
if
(
fkAddAction
.
isEnabled
())
{
vmMenu
.
add
(
fkAddAction
);
}
vmMenu
.
add
(
new
VirtualEntityEditAction
());
}
...
...
@@ -3769,22 +3773,28 @@ public class ResultSetViewer extends Viewer
}
}
boolean
editEntityIdentifier
(
DBRProgressMonitor
monitor
)
{
boolean
editEntityIdentifier
()
{
EditVirtualEntityDialog
dialog
=
new
EditVirtualEntityDialog
(
ResultSetViewer
.
this
,
model
.
getSingleSource
(),
getVirtualEntity
());
dialog
.
setInitPage
(
EditVirtualEntityDialog
.
InitPage
.
UNIQUE_KEY
);
return
dialog
.
open
()
==
IDialogConstants
.
OK_ID
;
}
private
void
clearEntityIdentifier
(
DBRProgressMonitor
monitor
)
throws
DBException
private
void
clearEntityIdentifier
(
)
{
DBDAttributeBinding
firstAttribute
=
model
.
getVisibleAttribute
(
0
);
DBDRowIdentifier
rowIdentifier
=
firstAttribute
.
getRowIdentifier
();
if
(
rowIdentifier
!=
null
)
{
DBVEntityConstraint
virtualKey
=
(
DBVEntityConstraint
)
rowIdentifier
.
getUniqueKey
();
virtualKey
.
setAttributes
(
Collections
.
emptyList
());
rowIdentifier
.
reloadAttributes
(
monitor
,
model
.
getAttributes
());
virtualKey
.
getParentObject
().
setProperty
(
DBVConstants
.
PROPERTY_USE_VIRTUAL_KEY_QUIET
,
null
);
DBVEntity
vEntity
=
getVirtualEntity
();
if
(
vEntity
!=
null
)
{
DBVEntityConstraint
vConstraint
=
vEntity
.
getBestIdentifier
();
if
(
vConstraint
!=
null
)
{
vConstraint
.
setAttributes
(
Collections
.
emptyList
());
}
DBDAttributeBinding
firstAttribute
=
model
.
getVisibleAttribute
(
0
);
DBDRowIdentifier
rowIdentifier
=
firstAttribute
.
getRowIdentifier
();
if
(
rowIdentifier
!=
null
&&
rowIdentifier
.
getUniqueKey
()
==
vConstraint
)
{
rowIdentifier
.
clearAttributes
();
}
}
persistConfig
();
...
...
@@ -4425,24 +4435,20 @@ public class ResultSetViewer extends Viewer
@Override
public
boolean
isEnabled
()
{
DBDRowIdentifier
identifier
=
getVirtualEntityIdentifier
();
return
identifier
!=
null
&&
(
define
||
!
CommonUtils
.
isEmpty
(
identifier
.
getAttributes
()));
DBVEntity
vEntity
=
getVirtualEntity
();
DBVEntityConstraint
vConstraint
=
vEntity
.
getBestIdentifier
();
return
vConstraint
!=
null
&&
(
define
!=
vConstraint
.
hasAttributes
());
}
@Override
public
void
run
()
{
UIUtils
.
runUIJob
(
"Edit virtual key"
,
monitor
->
{
try
{
if
(
define
)
{
editEntityIdentifier
(
monitor
);
}
else
{
clearEntityIdentifier
(
monitor
);
}
}
catch
(
DBException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
});
if
(
define
)
{
editEntityIdentifier
();
}
else
{
clearEntityIdentifier
();
}
}
}
...
...
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/ValidateUniqueKeyUsageDialog.java
浏览文件 @
3e3765c3
...
...
@@ -92,7 +92,7 @@ class ValidateUniqueKeyUsageDialog extends MessageDialogWithToggle {
private
void
editCustomKey
()
{
// Edit custom key
if
(
viewer
.
editEntityIdentifier
(
new
VoidProgressMonitor
()
))
{
if
(
viewer
.
editEntityIdentifier
())
{
super
.
buttonPressed
(
IDialogConstants
.
OK_ID
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录