Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
见谅
dbeaver
提交
25f44ab4
D
dbeaver
项目概览
见谅
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
6
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,体验更适合开发者的 AI 搜索 >>
提交
25f44ab4
编写于
11月 26, 2014
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Checkbox tree
上级
73ab3733
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
141 addition
and
40 deletion
+141
-40
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
.../src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
+4
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
.../org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
+4
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+4
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java
...core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java
+5
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
...e/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
+2
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
.../src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
+3
-27
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
...src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/CheckboxTreeManager.java
...aver/ui/views/navigator/database/CheckboxTreeManager.java
+106
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/DatabaseNavigatorTree.java
...er/ui/views/navigator/database/DatabaseNavigatorTree.java
+12
-12
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDataSource.java
浏览文件 @
25f44ab4
...
...
@@ -247,4 +247,8 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable, IDataS
return
node
;
}
@Override
public
String
toString
()
{
return
dataSource
.
toString
();
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNDatabaseFolder.java
浏览文件 @
25f44ab4
...
...
@@ -155,4 +155,8 @@ public class DBNDatabaseFolder extends DBNDatabaseNode implements DBNContainer,
return
childObjects
;
}
@Override
public
String
toString
()
{
return
meta
.
getChildrenType
(
getDataSource
());
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
25f44ab4
...
...
@@ -1152,4 +1152,8 @@ public class DataSourceDescriptor
folderPath
=
descriptor
.
folderPath
;
}
@Override
public
String
toString
()
{
return
name
+
" ["
+
driver
+
"]"
;
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java
浏览文件 @
25f44ab4
...
...
@@ -1275,6 +1275,11 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver
return
divPos
==
-
1
?
sourcesString
:
sourcesString
.
substring
(
0
,
divPos
);
}
@Override
public
String
toString
()
{
return
name
;
}
static
class
DriversParser
implements
SAXListener
{
DataSourceProviderDescriptor
curProvider
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
浏览文件 @
25f44ab4
...
...
@@ -106,6 +106,8 @@ public abstract class AbstractSearchPage extends DialogPage implements IObjectSe
Object
[]
nodes
=
tree
.
getViewer
()
instanceof
CheckboxTreeViewer
?
((
CheckboxTreeViewer
)
tree
.
getViewer
()).
getCheckedElements
()
:
((
IStructuredSelection
)
tree
.
getViewer
().
getSelection
()).
toArray
();
Object
[]
grayed
=
tree
.
getViewer
()
instanceof
CheckboxTreeViewer
?
((
CheckboxTreeViewer
)
tree
.
getViewer
()).
getGrayedElements
()
:
null
;
for
(
Object
obj
:
nodes
)
{
DBNNode
node
=
(
DBNNode
)
obj
;
if
(
sourcesString
.
length
()
>
0
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
浏览文件 @
25f44ab4
...
...
@@ -35,12 +35,10 @@ import org.jkiss.dbeaver.core.CoreMessages;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.model.runtime.DBRProcessListener
;
import
org.jkiss.dbeaver.model.struct.DBSEntity
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectContainer
;
import
org.jkiss.dbeaver.model.struct.DBSWrapper
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.search.AbstractSearchPage
;
import
org.jkiss.dbeaver.ui.views.navigator.database.CheckboxTreeManager
;
import
org.jkiss.dbeaver.ui.views.navigator.database.DatabaseNavigatorTree
;
import
org.jkiss.dbeaver.ui.views.navigator.database.load.TreeLoadNode
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -145,32 +143,10 @@ public class SearchDataPage extends AbstractSearchPage {
return
false
;
}
});
viewer
.
addCheckStateListener
(
new
CheckboxTreeManager
(
viewer
,
new
Class
[]
{
DBSDataSearcher
.
class
}));
viewer
.
addCheckStateListener
(
new
ICheckStateListener
()
{
@Override
public
void
checkStateChanged
(
CheckStateChangedEvent
event
)
{
if
(
event
.
getChecked
())
{
final
DBNNode
node
=
(
DBNNode
)
event
.
getElement
();
if
(
node
instanceof
DBNDataSource
)
{
DBNDataSource
dsNode
=
(
DBNDataSource
)
node
;
dsNode
.
initializeNode
(
null
,
new
DBRProcessListener
()
{
@Override
public
void
onProcessFinish
(
IStatus
status
)
{
if
(
status
.
isOK
())
{
Display
.
getDefault
().
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(!
dataSourceTree
.
isDisposed
())
{
updateEnablement
();
}
}
});
}
}
});
}
}
updateEnablement
();
}
});
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataQuery.java
浏览文件 @
25f44ab4
...
...
@@ -64,7 +64,7 @@ public class SearchDataQuery implements IObjectSearchQuery {
try
{
String
searchString
=
params
.
getSearchString
();
monitor
.
subTask
(
"Collect tables"
);
//
monitor.subTask("Collect tables");
List
<
DBSDataSearcher
>
searchers
=
new
ArrayList
<
DBSDataSearcher
>();
for
(
DBSObject
object
:
params
.
sources
)
{
addSearchers
(
monitor
,
searchers
,
object
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/CheckboxTreeManager.java
0 → 100644
浏览文件 @
25f44ab4
/*
* Copyright (C) 2010-2014 Serge Rieder
* serge@jkiss.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package
org.jkiss.dbeaver.ui.views.navigator.database
;
import
org.eclipse.jface.viewers.CheckStateChangedEvent
;
import
org.eclipse.jface.viewers.CheckboxTreeViewer
;
import
org.eclipse.jface.viewers.ICheckStateListener
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.model.navigator.DBNContainer
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
CheckboxTreeManager
implements
ICheckStateListener
{
private
final
CheckboxTreeViewer
viewer
;
private
final
Class
<?>[]
targetTypes
;
public
CheckboxTreeManager
(
CheckboxTreeViewer
viewer
,
Class
<?>[]
targetTypes
)
{
this
.
viewer
=
viewer
;
this
.
targetTypes
=
targetTypes
;
}
@Override
public
void
checkStateChanged
(
CheckStateChangedEvent
event
)
{
try
{
VoidProgressMonitor
monitor
=
VoidProgressMonitor
.
INSTANCE
;
List
<
DBNDatabaseNode
>
targetChildren
=
new
ArrayList
<
DBNDatabaseNode
>();
List
<
DBNDatabaseNode
>
targetContainers
=
new
ArrayList
<
DBNDatabaseNode
>();
collectChildren
(
monitor
,
event
.
getElement
(),
targetChildren
,
targetContainers
);
for
(
DBNDatabaseNode
child
:
targetChildren
)
{
viewer
.
setChecked
(
child
,
event
.
getChecked
());
}
for
(
DBNDatabaseNode
container
:
targetContainers
)
{
viewer
.
setChecked
(
container
,
event
.
getChecked
());
if
(
event
.
getChecked
())
{
boolean
missing
=
false
;
List
<
DBNDatabaseNode
>
directChildren
=
container
.
getChildren
(
monitor
);
if
(
directChildren
!=
null
)
{
for
(
DBNDatabaseNode
node
:
directChildren
)
{
if
(!
targetChildren
.
contains
(
node
))
{
missing
=
true
;
break
;
}
}
}
viewer
.
setGrayed
(
container
,
missing
);
}
else
{
viewer
.
setGrayed
(
container
,
false
);
}
}
}
catch
(
DBException
e
)
{
UIUtils
.
showErrorDialog
(
viewer
.
getControl
().
getShell
(),
"Error"
,
"Can't collect child nodes"
,
e
);
}
}
private
boolean
collectChildren
(
DBRProgressMonitor
monitor
,
final
Object
element
,
List
<
DBNDatabaseNode
>
targetChildren
,
List
<
DBNDatabaseNode
>
targetContainers
)
throws
DBException
{
if
(
element
instanceof
DBNDatabaseNode
)
{
for
(
Class
<?>
type
:
targetTypes
)
{
if
(
type
.
isInstance
(((
DBNDatabaseNode
)
element
).
getObject
()))
{
targetChildren
.
add
((
DBNDatabaseNode
)
element
);
return
true
;
}
}
((
DBNDatabaseNode
)
element
).
initializeNode
(
monitor
,
null
);
List
<
DBNDatabaseNode
>
children
=
((
DBNDatabaseNode
)
element
).
getChildren
(
monitor
);
if
(!
CommonUtils
.
isEmpty
(
children
))
{
boolean
foundChild
=
false
;
for
(
DBNDatabaseNode
child
:
children
)
{
if
(
collectChildren
(
monitor
,
child
,
targetChildren
,
targetContainers
))
{
foundChild
=
true
;
}
}
if
(
foundChild
)
{
targetContainers
.
add
((
DBNDatabaseNode
)
element
);
}
return
foundChild
;
}
}
return
false
;
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/views/navigator/database/DatabaseNavigatorTree.java
浏览文件 @
25f44ab4
...
...
@@ -91,18 +91,18 @@ public class DatabaseNavigatorTree extends Composite implements IDBNListener
int
treeStyle
=
SWT
.
H_SCROLL
|
SWT
.
V_SCROLL
|
style
;
if
(
checkEnabled
)
{
this
.
viewer
=
new
CheckboxTreeViewer
(
this
,
treeStyle
);
((
CheckboxTreeViewer
)
this
.
viewer
).
setCheckStateProvider
(
new
ICheckStateProvider
()
{
@Override
public
boolean
isChecked
(
Object
element
)
{
TreeItem
widget
=
(
TreeItem
)
viewer
.
testFindItem
(
element
);
return
widget
.
getChecked
();
}
@Override
public
boolean
isGrayed
(
Object
element
)
{
return
element
instanceof
DBNContainer
;
}
});
//
((CheckboxTreeViewer)this.viewer).setCheckStateProvider(new ICheckStateProvider() {
//
@Override
//
public boolean isChecked(Object element) {
//
TreeItem widget = (TreeItem) viewer.testFindItem(element);
//
return widget.getChecked();
//
}
//
//
@Override
//
public boolean isGrayed(Object element) {
//
return element instanceof DBNContainer;
//
}
//
});
}
else
{
this
.
viewer
=
new
TreeViewer
(
this
,
treeStyle
)
{
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录