Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
1734574c
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,发现更多精彩内容 >>
提交
1734574c
编写于
4月 02, 2021
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#10549 Data filter: row count calc is configurable (disabled by default)
Former-commit-id:
a9179551
上级
d7e4b588
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
61 addition
and
8 deletion
+61
-8
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/FilterValueEditDialog.java
...controls/resultset/valuefilter/FilterValueEditDialog.java
+1
-1
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/FilterValueEditPopup.java
.../controls/resultset/valuefilter/FilterValueEditPopup.java
+36
-5
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/GenericFilterValueEdit.java
...ontrols/resultset/valuefilter/GenericFilterValueEdit.java
+24
-2
未找到文件。
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/FilterValueEditDialog.java
浏览文件 @
1734574c
...
...
@@ -164,7 +164,7 @@ public class FilterValueEditDialog extends BaseDialog{
};
handler
.
addContextMenu
(
elements
);
handler
.
addFilterText
box
(
composite
);
handler
.
addFilterText
(
composite
);
handler
.
setFilterPattern
(
null
);
handler
.
loadValues
(
null
);
...
...
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/FilterValueEditPopup.java
浏览文件 @
1734574c
...
...
@@ -24,6 +24,7 @@ import org.eclipse.swt.events.SelectionAdapter;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.model.DBPEvaluationContext
;
...
...
@@ -47,9 +48,12 @@ public class FilterValueEditPopup extends AbstractPopupPanel {
private
static
final
String
DIALOG_ID
=
"DBeaver.FilterValueEditMenu"
;
//$NON-NLS-1$
private
static
final
String
PROP_SHOW_ROW_COUNT
=
"showRowCount"
;
private
Object
value
;
private
GenericFilterValueEdit
filter
;
private
Point
location
;
private
Button
showRowCountCheck
;
public
FilterValueEditPopup
(
Shell
parentShell
,
@NotNull
ResultSetViewer
viewer
,
@NotNull
DBDAttributeBinding
attr
,
@NotNull
ResultSetRow
[]
rows
)
{
super
(
parentShell
,
NLS
.
bind
(
ResultSetMessages
.
dialog_filter_value_edit_title
,
attr
.
getFullyQualifiedName
(
DBPEvaluationContext
.
UI
)));
...
...
@@ -94,7 +98,7 @@ public class FilterValueEditPopup extends AbstractPopupPanel {
public
void
widgetSelected
(
SelectionEvent
e
)
{
EditDictionaryPage
editDictionaryPage
=
new
EditDictionaryPage
(((
DBSEntityAssociation
)
descReferrer
).
getAssociatedEntity
());
if
(
editDictionaryPage
.
edit
(
parent
.
getShell
()))
{
filter
.
loadValues
(
null
);
reloadFilterValues
(
);
}
}
});
...
...
@@ -104,7 +108,7 @@ public class FilterValueEditPopup extends AbstractPopupPanel {
}
}
Text
filterTextbox
=
filter
.
addFilterText
box
(
group
);
Text
filterTextbox
=
filter
.
addFilterText
(
group
);
filterTextbox
.
setFocus
();
filterTextbox
.
addTraverseListener
(
e
->
{
Table
table
=
filter
.
getTableViewer
().
getTable
();
...
...
@@ -169,9 +173,22 @@ public class FilterValueEditPopup extends AbstractPopupPanel {
});
filter
.
getTableViewer
().
addDoubleClickListener
(
event
->
applyFilterValue
());
filter
.
setFilterPattern
(
null
);
filter
.
loadValues
(()
->
UIUtils
.
asyncExec
(()
->
UIUtils
.
packColumns
(
table
,
false
)));
if
(!
filter
.
isDictionarySelector
())
{
showRowCountCheck
=
UIUtils
.
createCheckbox
(
filter
.
getButtonsPanel
(),
"Show row count"
,
"Show row count for each dictionary value.\nMay be slow for big tables."
,
getDialogBoundsSettings
().
getBoolean
(
PROP_SHOW_ROW_COUNT
),
1
);
((
GridLayout
)
filter
.
getButtonsPanel
().
getLayout
()).
numColumns
++;
showRowCountCheck
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
getDialogBoundsSettings
().
put
(
PROP_SHOW_ROW_COUNT
,
showRowCountCheck
.
getSelection
());
reloadFilterValues
();
}
});
}
filter
.
createFilterButton
(
ResultSetMessages
.
sql_editor_resultset_filter_panel_btn_apply
,
new
SelectionAdapter
()
{
@Override
...
...
@@ -182,9 +199,23 @@ public class FilterValueEditPopup extends AbstractPopupPanel {
closeOnFocusLost
(
filterTextbox
,
table
);
filter
.
setFilterPattern
(
null
);
reloadFilterValues
();
return
tableComposite
;
}
private
void
reloadFilterValues
()
{
filter
.
setShowRowCount
(
getDialogBoundsSettings
().
getBoolean
(
PROP_SHOW_ROW_COUNT
));
filter
.
loadValues
(()
->
UIUtils
.
asyncExec
(()
->
{
Table
table
=
filter
.
getTableViewer
().
getTable
();
if
(
table
!=
null
&&
!
table
.
isDisposed
())
{
UIUtils
.
packColumns
(
table
,
false
);
}
}));
}
private
void
applyFilterValue
()
{
value
=
filter
.
getFilterValue
();
okPressed
();
...
...
plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/valuefilter/GenericFilterValueEdit.java
浏览文件 @
1734574c
...
...
@@ -88,6 +88,7 @@ class GenericFilterValueEdit {
private
Button
toggleButton
;
private
transient
final
Set
<
Object
>
savedValues
=
new
HashSet
<>();
private
boolean
showRowCount
;
GenericFilterValueEdit
(
@NotNull
ResultSetViewer
viewer
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
ResultSetRow
[]
rows
,
@NotNull
DBCLogicalOperator
operator
)
{
this
.
viewer
=
viewer
;
...
...
@@ -222,7 +223,7 @@ class GenericFilterValueEdit {
return
(
Collection
<
DBDLabelValuePair
>)
tableViewer
.
getInput
();
}
Text
addFilterText
box
(
Composite
composite
)
{
Text
addFilterText
(
Composite
composite
)
{
// Create filter text
final
Text
valueFilterText
=
new
Text
(
composite
,
SWT
.
BORDER
);
...
...
@@ -239,6 +240,7 @@ class GenericFilterValueEdit {
void
loadValues
(
Runnable
onFinish
)
{
if
(
loadJob
!=
null
)
{
loadJob
.
cancel
();
loadJob
.
schedule
(
200
);
return
;
}
...
...
@@ -304,7 +306,11 @@ class GenericFilterValueEdit {
List
<
DBDLabelValuePair
>
readEnumeration
(
DBRProgressMonitor
monitor
)
throws
DBException
{
DBExecUtils
.
tryExecuteRecover
(
monitor
,
attributeEnumerable
.
getDataSource
(),
param
->
{
try
(
DBCSession
session
=
DBUtils
.
openUtilSession
(
monitor
,
attributeEnumerable
,
"Read value enumeration"
))
{
result
=
attributeEnumerable
.
getValueEnumeration
(
session
,
filterPattern
,
MAX_MULTI_VALUES
,
true
,
true
);
result
=
attributeEnumerable
.
getValueEnumeration
(
session
,
filterPattern
,
MAX_MULTI_VALUES
,
showRowCount
,
true
);
}
catch
(
DBException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
...
...
@@ -480,6 +486,10 @@ class GenericFilterValueEdit {
return
null
;
}
public
Composite
getButtonsPanel
()
{
return
buttonsPanel
;
}
public
Button
createFilterButton
(
String
label
,
SelectionAdapter
selectionAdapter
)
{
if
(
isCheckedTable
)
{
Button
button
=
UIUtils
.
createDialogButton
(
buttonsPanel
,
label
,
selectionAdapter
);
...
...
@@ -490,6 +500,18 @@ class GenericFilterValueEdit {
}
}
public
boolean
isDictionarySelector
()
{
return
ResultSetUtils
.
getEnumerableConstraint
(
attribute
)
!=
null
;
}
public
boolean
getShowRowCount
()
{
return
showRowCount
;
}
public
void
setShowRowCount
(
boolean
showRowCount
)
{
this
.
showRowCount
=
showRowCount
;
}
private
abstract
class
KeyLoadJob
extends
AbstractJob
{
private
final
Runnable
onFinish
;
KeyLoadJob
(
String
name
,
Runnable
onFinish
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录