Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
381ad276
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,发现更多精彩内容 >>
提交
381ad276
编写于
3月 14, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Datasource selector panel redesign (modeless)
上级
43efce07
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
178 addition
and
100 deletion
+178
-100
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CSmartSelector.java
...ore/src/org/jkiss/dbeaver/ui/controls/CSmartSelector.java
+0
-16
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/AbstractPopupPanel.java
.../src/org/jkiss/dbeaver/ui/dialogs/AbstractPopupPanel.java
+126
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/SelectObjectDialog.java
.../src/org/jkiss/dbeaver/ui/dialogs/SelectObjectDialog.java
+10
-56
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
...dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
+33
-28
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
.../dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
+8
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
...s/dbeaver/ui/perspective/DataSourceManagementToolbar.java
+1
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CSmartSelector.java
浏览文件 @
381ad276
...
...
@@ -16,24 +16,8 @@
*/
package
org.jkiss.dbeaver.ui.controls
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.viewers.ILabelProvider
;
import
org.eclipse.jface.viewers.ISelectionChangedListener
;
import
org.eclipse.jface.viewers.SelectionChangedEvent
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Shell
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.controls.itemlist.ItemListControl
;
import
org.jkiss.dbeaver.ui.dialogs.BaseDialog
;
import
org.jkiss.dbeaver.ui.dialogs.connection.SelectDataSourceDialog
;
/**
* Image combo
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/AbstractPopupPanel.java
0 → 100644
浏览文件 @
381ad276
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.ui.dialogs
;
import
org.eclipse.jface.action.Action
;
import
org.eclipse.jface.action.IContributionManager
;
import
org.eclipse.jface.dialogs.Dialog
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.dialogs.IDialogSettings
;
import
org.eclipse.jface.viewers.CellLabelProvider
;
import
org.eclipse.jface.viewers.IFontProvider
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.StructuredSelection
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.FocusAdapter
;
import
org.eclipse.swt.events.FocusEvent
;
import
org.eclipse.swt.graphics.Font
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.swt.widgets.Text
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.DBPObject
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.load.AbstractLoadService
;
import
org.jkiss.dbeaver.model.struct.DBSWrapper
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.controls.ListContentProvider
;
import
org.jkiss.dbeaver.ui.controls.itemlist.DatabaseObjectListControl
;
import
org.jkiss.utils.CommonUtils
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
/**
* SelectObjectDialog
*
* @author Serge Rider
*/
public
abstract
class
AbstractPopupPanel
extends
Dialog
{
private
final
String
title
;
private
boolean
modeless
;
protected
AbstractPopupPanel
(
Shell
parentShell
,
String
title
)
{
super
(
parentShell
);
this
.
title
=
title
;
}
@Override
protected
boolean
isResizable
()
{
return
true
;
}
public
boolean
isModeless
()
{
return
modeless
;
}
public
void
setModeless
(
boolean
modeless
)
{
this
.
modeless
=
modeless
;
if
(
modeless
)
{
setShellStyle
(
SWT
.
SHELL_TRIM
);
}
else
{
setShellStyle
(
SWT
.
DIALOG_TRIM
|
SWT
.
APPLICATION_MODAL
|
SWT
.
MAX
|
SWT
.
RESIZE
);
}
}
@Override
protected
void
configureShell
(
Shell
newShell
)
{
super
.
configureShell
(
newShell
);
newShell
.
setText
(
title
);
}
@Override
protected
Control
createButtonBar
(
Composite
parent
)
{
if
(
this
.
modeless
)
{
return
UIUtils
.
createPlaceholder
(
parent
,
1
);
}
return
super
.
createButtonBar
(
parent
);
}
protected
void
closeOnFocusLost
(
Control
...
controls
)
{
if
(
modeless
)
{
FocusAdapter
focusListener
=
new
FocusAdapter
()
{
@Override
public
void
focusLost
(
FocusEvent
e
)
{
DBeaverUI
.
asyncExec
(()
->
{
if
(!
UIUtils
.
isParent
(
getShell
(),
getShell
().
getDisplay
().
getFocusControl
()))
{
cancelPressed
();
}
});
}
};
for
(
Control
ctrl
:
controls
)
{
if
(
ctrl
!=
null
)
{
ctrl
.
addFocusListener
(
focusListener
);
}
}
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/SelectObjectDialog.java
浏览文件 @
381ad276
...
...
@@ -18,21 +18,19 @@ package org.jkiss.dbeaver.ui.dialogs;
import
org.eclipse.jface.action.Action
;
import
org.eclipse.jface.action.IContributionManager
;
import
org.eclipse.jface.dialogs.Dialog
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.dialogs.IDialogSettings
;
import
org.eclipse.jface.viewers.*
;
import
org.eclipse.jface.viewers.CellLabelProvider
;
import
org.eclipse.jface.viewers.IFontProvider
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.StructuredSelection
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.FocusAdapter
;
import
org.eclipse.swt.events.FocusEvent
;
import
org.eclipse.swt.graphics.Font
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.swt.widgets.Text
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.DBPObject
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
...
...
@@ -54,22 +52,19 @@ import java.util.List;
*
* @author Serge Rider
*/
public
class
SelectObjectDialog
<
T
extends
DBPObject
>
extends
Dialog
{
public
class
SelectObjectDialog
<
T
extends
DBPObject
>
extends
AbstractPopupPanel
{
private
static
final
String
DIALOG_ID
=
"DBeaver.SelectObjectDialog"
;
//$NON-NLS-1$
private
String
title
;
private
String
listId
;
private
Collection
<
T
>
objects
;
private
List
<
T
>
selectedObjects
=
new
ArrayList
<>();
private
boolean
singleSelection
;
private
Font
boldFont
;
private
boolean
modeless
;
public
SelectObjectDialog
(
Shell
parentShell
,
String
title
,
boolean
singleSelection
,
String
listId
,
Collection
<
T
>
objects
,
Collection
<
T
>
selected
)
{
super
(
parentShell
);
this
.
title
=
title
;
super
(
parentShell
,
title
);
this
.
singleSelection
=
singleSelection
;
this
.
listId
=
listId
;
this
.
objects
=
new
ArrayList
<>(
objects
);
...
...
@@ -85,26 +80,9 @@ public class SelectObjectDialog<T extends DBPObject> extends Dialog {
return
UIUtils
.
getDialogSettings
(
DIALOG_ID
+
"."
+
listId
);
}
@Override
protected
boolean
isResizable
()
{
return
true
;
}
public
void
setModeless
(
boolean
modeless
)
{
this
.
modeless
=
modeless
;
if
(
modeless
)
{
setShellStyle
(
SWT
.
SHELL_TRIM
);
}
else
{
setShellStyle
(
SWT
.
DIALOG_TRIM
|
SWT
.
APPLICATION_MODAL
|
SWT
.
MAX
|
SWT
.
RESIZE
);
}
}
@Override
protected
Control
createDialogArea
(
Composite
parent
)
{
getShell
().
setText
(
title
);
Composite
group
=
(
Composite
)
super
.
createDialogArea
(
parent
);
GridData
gd
=
new
GridData
(
GridData
.
FILL_BOTH
);
group
.
setLayoutData
(
gd
);
...
...
@@ -145,23 +123,7 @@ public class SelectObjectDialog<T extends DBPObject> extends Dialog {
performSearch
(
ISearchContextProvider
.
SearchType
.
NONE
);
getItemsViewer
().
getControl
().
setFocus
();
if
(
modeless
)
{
FocusAdapter
focusListener
=
new
FocusAdapter
()
{
@Override
public
void
focusLost
(
FocusEvent
e
)
{
DBeaverUI
.
asyncExec
(()
->
{
if
(!
UIUtils
.
isParent
(
getShell
(),
getShell
().
getDisplay
().
getFocusControl
()))
{
cancelPressed
();
}
});
}
};
getItemsViewer
().
getControl
().
addFocusListener
(
focusListener
);
Text
searchControl
=
getSearchTextControl
();
if
(
searchControl
!=
null
)
{
searchControl
.
addFocusListener
(
focusListener
);
}
}
closeOnFocusLost
(
getItemsViewer
().
getControl
(),
getSearchTextControl
());
}
});
}
...
...
@@ -238,12 +200,12 @@ public class SelectObjectDialog<T extends DBPObject> extends Dialog {
IStructuredSelection
selection
=
(
IStructuredSelection
)
event
.
getSelection
();
selectedObjects
.
clear
();
selectedObjects
.
addAll
(
selection
.
toList
());
if
(!
modeless
)
{
if
(!
isModeless
()
)
{
getButton
(
IDialogConstants
.
OK_ID
).
setEnabled
(!
selectedObjects
.
isEmpty
());
}
});
objectList
.
setDoubleClickHandler
(
event
->
{
if
(
modeless
||
getButton
(
IDialogConstants
.
OK_ID
).
isEnabled
())
{
if
(
isModeless
()
||
getButton
(
IDialogConstants
.
OK_ID
).
isEnabled
())
{
okPressed
();
}
});
...
...
@@ -253,14 +215,6 @@ public class SelectObjectDialog<T extends DBPObject> extends Dialog {
return
group
;
}
@Override
protected
Control
createButtonBar
(
Composite
parent
)
{
if
(
this
.
modeless
)
{
return
UIUtils
.
createPlaceholder
(
parent
,
1
);
}
return
super
.
createButtonBar
(
parent
);
}
@Override
public
int
open
()
{
int
result
=
super
.
open
();
...
...
@@ -274,7 +228,7 @@ public class SelectObjectDialog<T extends DBPObject> extends Dialog {
protected
Control
createContents
(
Composite
parent
)
{
Control
ctl
=
super
.
createContents
(
parent
);
if
(!
modeless
)
{
if
(!
isModeless
()
)
{
getButton
(
IDialogConstants
.
OK_ID
).
setEnabled
(
false
);
}
return
ctl
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
浏览文件 @
381ad276
...
...
@@ -27,6 +27,7 @@ import org.eclipse.swt.events.SelectionEvent;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.dialogs.FilteredTree
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreMessages
;
...
...
@@ -35,6 +36,7 @@ import org.jkiss.dbeaver.core.DBeaverUI;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.AbstractPopupPanel
;
import
org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree
;
/**
...
...
@@ -42,7 +44,7 @@ import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree;
*
* @author Serge Rider
*/
public
class
SelectDataSourceDialog
extends
Dialog
{
public
class
SelectDataSourceDialog
extends
AbstractPopupPanel
{
private
static
final
String
PARAM_SHOW_CONNECTED
=
"showConnected"
;
private
static
final
String
PARAM_SHOW_ALL_PROJECTS
=
"showAllProjects"
;
...
...
@@ -59,7 +61,7 @@ public class SelectDataSourceDialog extends Dialog {
public
SelectDataSourceDialog
(
@NotNull
Shell
parentShell
,
@Nullable
IProject
project
,
DBPDataSourceContainer
selection
)
{
super
(
parentShell
);
super
(
parentShell
,
CoreMessages
.
dialog_select_datasource_title
);
this
.
project
=
project
;
this
.
dataSource
=
selection
;
}
...
...
@@ -70,17 +72,9 @@ public class SelectDataSourceDialog extends Dialog {
return
UIUtils
.
getDialogSettings
(
DIALOG_ID
);
}
@Override
protected
boolean
isResizable
()
{
return
true
;
}
@Override
protected
Control
createDialogArea
(
Composite
parent
)
{
getShell
().
setText
(
CoreMessages
.
dialog_select_datasource_title
);
showConnected
=
getDialogBoundsSettings
().
getBoolean
(
PARAM_SHOW_CONNECTED
);
showAllProjects
=
getDialogBoundsSettings
().
getBoolean
(
PARAM_SHOW_ALL_PROJECTS
);
...
...
@@ -106,43 +100,45 @@ public class SelectDataSourceDialog extends Dialog {
gd
.
minimumWidth
=
100
;
dataSourceTree
.
setLayoutData
(
gd
);
final
TreeViewer
treeViewer
=
dataSourceTree
.
getViewer
();
final
Text
descriptionText
=
new
Text
(
group
,
SWT
.
READ_ONLY
);
descriptionText
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_HORIZONTAL
));
final
Button
showConnectedCheck
=
new
Button
(
group
,
SWT
.
CHECK
);
showConnectedCheck
.
setText
(
"Show connected databases only"
);
showConnectedCheck
.
setText
(
"Show
&
connected databases only"
);
showConnectedCheck
.
setSelection
(
showConnected
);
showConnectedCheck
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
showConnected
=
showConnectedCheck
.
getSelection
();
dataSourceTree
.
getViewer
()
.
getControl
().
setRedraw
(
false
);
treeViewer
.
getControl
().
setRedraw
(
false
);
try
{
dataSourceTree
.
getViewer
()
.
refresh
();
treeViewer
.
refresh
();
if
(
showConnected
)
{
dataSourceTree
.
getViewer
()
.
expandAll
();
treeViewer
.
expandAll
();
}
}
finally
{
dataSourceTree
.
getViewer
()
.
getControl
().
setRedraw
(
true
);
treeViewer
.
getControl
().
setRedraw
(
true
);
}
getDialogBoundsSettings
().
put
(
PARAM_SHOW_CONNECTED
,
showConnected
);
}
});
final
Button
showAllProjectsCheck
=
new
Button
(
group
,
SWT
.
CHECK
);
showAllProjectsCheck
.
setText
(
"Show all projects"
);
showAllProjectsCheck
.
setText
(
"Show
&
all projects"
);
showAllProjectsCheck
.
setSelection
(
showAllProjects
);
showAllProjectsCheck
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
showAllProjects
=
showAllProjectsCheck
.
getSelection
();
dataSourceTree
.
getViewer
()
.
getControl
().
setRedraw
(
false
);
treeViewer
.
getControl
().
setRedraw
(
false
);
try
{
dataSourceTree
.
reloadTree
(
getTreeRootNode
());
if
(
showAllProjects
)
{
dataSourceTree
.
getViewer
()
.
expandToLevel
(
3
);
treeViewer
.
expandToLevel
(
3
);
}
}
finally
{
dataSourceTree
.
getViewer
()
.
getControl
().
setRedraw
(
true
);
treeViewer
.
getControl
().
setRedraw
(
true
);
}
getDialogBoundsSettings
().
put
(
PARAM_SHOW_ALL_PROJECTS
,
showAllProjects
);
}
...
...
@@ -151,11 +147,11 @@ public class SelectDataSourceDialog extends Dialog {
if
(
this
.
dataSource
!=
null
)
{
DBNDatabaseNode
dsNode
=
core
.
getNavigatorModel
().
getNodeByObject
(
this
.
dataSource
);
if
(
dsNode
!=
null
)
{
dataSourceTree
.
getViewer
()
.
setSelection
(
new
StructuredSelection
(
dsNode
),
true
);
treeViewer
.
setSelection
(
new
StructuredSelection
(
dsNode
),
true
);
}
}
dataSourceTree
.
getViewer
()
.
addFilter
(
new
ViewerFilter
()
{
treeViewer
.
addFilter
(
new
ViewerFilter
()
{
@Override
public
boolean
select
(
Viewer
viewer
,
Object
parentElement
,
Object
element
)
{
...
...
@@ -170,7 +166,7 @@ public class SelectDataSourceDialog extends Dialog {
return
element
instanceof
DBNProject
||
element
instanceof
DBNProjectDatabases
||
element
instanceof
DBNLocalFolder
||
element
instanceof
DBNDataSource
;
}
});
dataSourceTree
.
getViewer
()
.
addSelectionChangedListener
(
treeViewer
.
addSelectionChangedListener
(
event
->
{
IStructuredSelection
structSel
=
(
IStructuredSelection
)
event
.
getSelection
();
Object
selNode
=
structSel
.
isEmpty
()
?
null
:
structSel
.
getFirstElement
();
...
...
@@ -188,18 +184,25 @@ public class SelectDataSourceDialog extends Dialog {
}
}
);
dataSourceTree
.
getViewer
()
.
addDoubleClickListener
(
event
->
{
treeViewer
.
addDoubleClickListener
(
event
->
{
if
(
getButton
(
IDialogConstants
.
OK_ID
).
isEnabled
())
{
okPressed
();
}
});
DBeaverUI
.
asyncExec
(()
->
{
dataSourceTree
.
getViewer
()
.
getControl
().
setFocus
();
treeViewer
.
getControl
().
setFocus
();
if
(
showConnected
)
{
dataSourceTree
.
getViewer
()
.
expandAll
();
treeViewer
.
expandAll
();
}
});
closeOnFocusLost
(
treeViewer
.
getControl
(),
dataSourceTree
.
getFilterControl
(),
descriptionText
,
showConnectedCheck
,
showAllProjectsCheck
);
return
group
;
}
...
...
@@ -230,9 +233,11 @@ public class SelectDataSourceDialog extends Dialog {
composite
.
setFont
(
parent
.
getFont
());
// Add the buttons to the button bar.
createButton
(
composite
,
IDialogConstants
.
OK_ID
,
"Select"
,
true
);
createButton
(
composite
,
IDialogConstants
.
IGNORE_ID
,
"None"
,
false
);
createButton
(
composite
,
IDialogConstants
.
CANCEL_ID
,
IDialogConstants
.
CANCEL_LABEL
,
false
);
createButton
(
composite
,
IDialogConstants
.
OK_ID
,
"&Select"
,
true
);
createButton
(
composite
,
IDialogConstants
.
IGNORE_ID
,
"&None"
,
false
);
if
(!
isModeless
())
{
createButton
(
composite
,
IDialogConstants
.
CANCEL_ID
,
IDialogConstants
.
CANCEL_LABEL
,
false
);
}
return
composite
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorTree.java
浏览文件 @
381ad276
...
...
@@ -35,6 +35,7 @@ import org.eclipse.ui.dialogs.FilteredTree;
import
org.eclipse.ui.dialogs.PatternFilter
;
import
org.eclipse.ui.progress.WorkbenchJob
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.Log
;
...
...
@@ -64,6 +65,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
private
boolean
checkEnabled
;
private
ISelection
defaultSelection
;
private
IFilter
navigatorFilter
;
private
Text
filterControl
;
public
DatabaseNavigatorTree
(
Composite
parent
,
DBNNode
rootNode
,
int
style
)
{
...
...
@@ -115,6 +117,11 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
treeViewer
.
setInput
(
new
DatabaseNavigatorContent
(
rootNode
));
}
@Nullable
public
Text
getFilterControl
()
{
return
filterControl
;
}
private
TreeViewer
doCreateTreeViewer
(
Composite
parent
,
int
style
)
{
checkEnabled
=
(
style
&
SWT
.
CHECK
)
!=
0
;
...
...
@@ -125,6 +132,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
}
else
{
if
(
navigatorFilter
!=
null
)
{
CustomFilteredTree
filteredTree
=
new
CustomFilteredTree
(
this
,
treeStyle
);
filterControl
=
filteredTree
.
getFilterControl
();
return
filteredTree
.
getViewer
();
}
else
{
return
doCreateNavigatorTreeViewer
(
parent
,
style
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
浏览文件 @
381ad276
...
...
@@ -810,6 +810,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
void
showConnectionSelector
()
{
SelectDataSourceDialog
dialog
=
new
SelectDataSourceDialog
(
connectionCombo
.
getShell
(),
getActiveProject
(),
connectionCombo
.
getSelectedItem
());
dialog
.
setModeless
(
true
);
if
(
dialog
.
open
()
==
IDialogConstants
.
CANCEL_ID
)
{
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录