Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
447be5ee
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,发现更多精彩内容 >>
提交
447be5ee
编写于
1月 14, 2017
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Image combo refactoring (label provider)
上级
db9a1873
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
191 addition
and
71 deletion
+191
-71
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/scripts/ScriptsImportWizardPage.java
.../jkiss/dbeaver/tools/scripts/ScriptsImportWizardPage.java
+30
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CImageCombo.java
...r.core/src/org/jkiss/dbeaver/ui/controls/CImageCombo.java
+16
-30
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
.../dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
+49
-11
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java
...org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java
+18
-7
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
...s/dbeaver/ui/perspective/DataSourceManagementToolbar.java
+78
-19
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/scripts/ScriptsImportWizardPage.java
浏览文件 @
447be5ee
...
...
@@ -26,6 +26,8 @@ import org.eclipse.swt.events.ModifyEvent;
import
org.eclipse.swt.events.ModifyListener
;
import
org.eclipse.swt.events.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.graphics.Color
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.Button
;
...
...
@@ -36,15 +38,16 @@ import org.jkiss.dbeaver.core.CoreMessages;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.controls.CImageCombo
;
import
org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.utils.CommonUtils
;
import
java.io.File
;
...
...
@@ -128,10 +131,9 @@ class ScriptsImportWizardPage extends WizardPage {
extensionsText
.
setLayoutData
(
gd
);
UIUtils
.
createControlLabel
(
generalSettings
,
CoreMessages
.
dialog_scripts_import_wizard_label_default_connection
);
scriptsDataSources
=
new
CImageCombo
<>(
generalSettings
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
scriptsDataSources
=
new
CImageCombo
<>(
generalSettings
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
,
new
ConnectionLabelProvider
()
);
for
(
DataSourceDescriptor
dataSourceDescriptor
:
DataSourceRegistry
.
getAllDataSources
())
{
scriptsDataSources
.
add
(
dataSourceDescriptor
.
getObjectImage
(),
dataSourceDescriptor
.
getName
(),
UIUtils
.
getConnectionColor
(
dataSourceDescriptor
.
getConnectionConfiguration
()),
dataSourceDescriptor
);
scriptsDataSources
.
addItem
(
dataSourceDescriptor
);
}
if
(
scriptsDataSources
.
getItemCount
()
>
0
)
{
...
...
@@ -201,4 +203,28 @@ class ScriptsImportWizardPage extends WizardPage {
(
DBNResource
)
importRoot
,
dataSourceContainer
);
}
private
static
class
ConnectionLabelProvider
extends
LabelProvider
implements
IColorProvider
{
@Override
public
Image
getImage
(
Object
element
)
{
final
DBNDatabaseNode
node
=
DBeaverCore
.
getInstance
().
getNavigatorModel
().
findNode
((
DataSourceDescriptor
)
element
);
return
node
==
null
?
null
:
DBeaverIcons
.
getImage
(
node
.
getNodeIcon
());
}
@Override
public
String
getText
(
Object
element
)
{
return
((
DataSourceDescriptor
)
element
).
getName
();
}
@Override
public
Color
getForeground
(
Object
element
)
{
return
null
;
}
@Override
public
Color
getBackground
(
Object
element
)
{
return
element
==
null
?
null
:
UIUtils
.
getConnectionColor
(((
DataSourceDescriptor
)
element
).
getConnectionConfiguration
());
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CImageCombo.java
浏览文件 @
447be5ee
...
...
@@ -17,6 +17,8 @@
*/
package
org.jkiss.dbeaver.ui.controls
;
import
org.eclipse.jface.viewers.IColorProvider
;
import
org.eclipse.jface.viewers.ILabelProvider
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.SWTException
;
import
org.eclipse.swt.events.*
;
...
...
@@ -26,8 +28,6 @@ import org.eclipse.swt.layout.GridData;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -35,17 +35,9 @@ import java.util.List;
/**
* Image combo
*/
public
class
CImageCombo
<
ITEM_TYPE
extends
Object
>
extends
Composite
{
public
interface
DropDownRenderer
<
T
extends
Control
>
{
T
createControl
(
Composite
parent
,
T
oldControl
);
void
setSelection
(
T
control
,
int
selectionIndex
);
void
addItem
(
@Nullable
Object
parent
,
@Nullable
DBPImage
icon
,
String
string
,
@Nullable
Color
background
,
@Nullable
Object
data
);
}
public
class
CImageCombo
<
ITEM_TYPE
>
extends
Composite
{
private
final
ILabelProvider
labelProvider
;
private
Label
imageLabel
;
private
Text
text
;
private
Table
table
;
...
...
@@ -58,9 +50,10 @@ public class CImageCombo<ITEM_TYPE extends Object> extends Composite {
private
Font
font
;
private
Point
sizeHint
;
public
CImageCombo
(
Composite
parent
,
int
style
)
public
CImageCombo
(
Composite
parent
,
int
style
,
ILabelProvider
labelProvider
)
{
super
(
parent
,
style
=
checkStyle
(
style
));
this
.
labelProvider
=
labelProvider
;
this
.
setLayoutData
(
new
GridData
(
GridData
.
VERTICAL_ALIGN_CENTER
));
GridLayout
gridLayout
=
new
GridLayout
(
3
,
false
);
...
...
@@ -189,37 +182,30 @@ public class CImageCombo<ITEM_TYPE extends Object> extends Composite {
}
/**
* Adds the argument to the end of the receiver's list.
*
*
* @param string the new item
* @param background item background color
* @throws IllegalArgumentException <ul>
* <li>ERROR_NULL_ARGUMENT - if the string is null</li>
* </ul>
* @throws SWTException <ul>
* <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
* <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
* </ul>
* Adds element
*/
public
void
add
(
@Nullable
DBPImage
icon
,
String
string
,
@Nullable
Color
background
,
@Nullable
ITEM_TYPE
data
)
public
void
add
Item
(
@Nullable
ITEM_TYPE
element
)
{
checkWidget
();
String
string
=
labelProvider
.
getText
(
element
);
if
(
string
==
null
)
{
SWT
.
error
(
SWT
.
ERROR_NULL_ARGUMENT
);
}
Image
image
=
icon
==
null
?
null
:
DBeaverIcons
.
getImage
(
icon
);
Image
image
=
labelProvider
.
getImage
(
element
);
TableItem
newItem
=
new
TableItem
(
this
.
table
,
SWT
.
NONE
);
newItem
.
setText
(
string
);
newItem
.
setData
(
data
);
newItem
.
setData
(
element
);
if
(
image
!=
null
)
{
newItem
.
setImage
(
image
);
if
(
imageLabel
.
getImage
()
==
null
)
{
imageLabel
.
setImage
(
image
);
}
}
if
(
background
!=
null
)
{
newItem
.
setBackground
(
background
);
if
(
labelProvider
instanceof
IColorProvider
)
{
Color
background
=
((
IColorProvider
)
labelProvider
).
getBackground
(
element
);
if
(
background
!=
null
)
{
newItem
.
setBackground
(
background
);
}
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
浏览文件 @
447be5ee
...
...
@@ -20,13 +20,17 @@ package org.jkiss.dbeaver.ui.dialogs.connection;
import
org.eclipse.core.runtime.IStatus
;
import
org.eclipse.core.runtime.Status
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.viewers.IColorProvider
;
import
org.eclipse.jface.viewers.LabelProvider
;
import
org.eclipse.osgi.util.NLS
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.ModifyEvent
;
import
org.eclipse.swt.events.ModifyListener
;
import
org.eclipse.swt.events.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.graphics.Color
;
import
org.eclipse.swt.graphics.Font
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
...
...
@@ -319,7 +323,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
UIUtils
.
createControlLabel
(
group
,
"Connection type"
);
Composite
ctGroup
=
UIUtils
.
createPlaceholder
(
group
,
2
,
5
);
connectionTypeCombo
=
new
CImageCombo
<>(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
connectionTypeCombo
=
new
CImageCombo
<>(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
,
new
ConnectionTypeLabelProvider
()
);
loadConnectionTypes
();
connectionTypeCombo
.
select
(
0
);
connectionTypeCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
...
...
@@ -335,8 +339,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
pickerButton
.
setText
(
"Edit"
);
pickerButton
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
public
void
widgetSelected
(
SelectionEvent
e
)
{
DataSourceDescriptor
dataSource
=
getActiveDataSource
();
UIUtils
.
showPreferencesFor
(
getControl
().
getShell
(),
...
...
@@ -353,13 +356,12 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
{
UIUtils
.
createControlLabel
(
group
,
"Connection folder"
);
connectionFolderCombo
=
new
CImageCombo
<>(
group
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
connectionFolderCombo
=
new
CImageCombo
<>(
group
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
,
new
ConnectionFolderLabelProvider
()
);
//connectionFolderCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
loadConnectionFolders
();
connectionFolderCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
public
void
widgetSelected
(
SelectionEvent
e
)
{
dataSourceFolder
=
connectionFolderCombo
.
getItem
(
connectionFolderCombo
.
getSelectionIndex
());
}
});
...
...
@@ -524,23 +526,21 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
{
connectionTypeCombo
.
removeAll
();
for
(
DBPConnectionType
ct
:
DataSourceProviderRegistry
.
getInstance
().
getConnectionTypes
())
{
connectionTypeCombo
.
add
(
null
,
ct
.
getName
(),
UIUtils
.
getConnectionTypeColor
(
ct
),
ct
);
connectionTypeCombo
.
add
Item
(
ct
);
}
}
private
void
loadConnectionFolders
()
{
connectionFolderCombo
.
removeAll
();
connectionFolderCombo
.
add
(
null
,
CoreMessages
.
toolbar_datasource_selector_empty
,
null
,
null
);
connectionFolderCombo
.
add
Item
(
null
);
for
(
DBPDataSourceFolder
folder
:
getWizard
().
getDataSourceRegistry
().
getRootFolders
())
{
loadConnectionFolder
(
0
,
folder
);
}
}
private
void
loadConnectionFolder
(
int
level
,
DBPDataSourceFolder
folder
)
{
String
prefix
=
""
;
for
(
int
i
=
0
;
i
<
level
;
i
++)
prefix
+=
" "
;
connectionFolderCombo
.
add
(
DBIcon
.
TREE_DATABASE_CATEGORY
,
prefix
+
folder
.
getName
(),
null
,
folder
);
connectionFolderCombo
.
addItem
(
folder
);
for
(
DBPDataSourceFolder
child
:
folder
.
getChildren
())
{
loadConnectionFolder
(
level
+
1
,
child
);
}
...
...
@@ -629,6 +629,44 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
this
.
dataSourceFolder
=
dataSourceFolder
;
}
private
static
class
ConnectionTypeLabelProvider
extends
LabelProvider
implements
IColorProvider
{
@Override
public
String
getText
(
Object
element
)
{
return
((
DBPConnectionType
)
element
).
getName
();
}
@Override
public
Color
getForeground
(
Object
element
)
{
return
null
;
}
@Override
public
Color
getBackground
(
Object
element
)
{
return
UIUtils
.
getConnectionTypeColor
((
DBPConnectionType
)
element
);
}
}
private
static
class
ConnectionFolderLabelProvider
extends
LabelProvider
{
@Override
public
Image
getImage
(
Object
element
)
{
return
element
==
null
?
null
:
DBeaverIcons
.
getImage
(
DBIcon
.
TREE_DATABASE_CATEGORY
);
}
@Override
public
String
getText
(
Object
element
)
{
if
(
element
==
null
)
{
return
CoreMessages
.
toolbar_datasource_selector_empty
;
}
String
prefix
=
""
;
for
(
DBPDataSourceFolder
folder
=
((
DBPDataSourceFolder
)
element
).
getParent
();
folder
!=
null
;
folder
=
folder
.
getParent
())
{
prefix
+=
" "
;
}
return
prefix
+
((
DBPDataSourceFolder
)
element
).
getName
();
}
}
private
class
SchemaReadJob
extends
AbstractJob
{
private
DBSObjectContainer
objectContainer
;
public
SchemaReadJob
(
DBSObjectContainer
objectContainer
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java
浏览文件 @
447be5ee
...
...
@@ -24,6 +24,7 @@ import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import
org.eclipse.jface.viewers.*
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.*
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
...
...
@@ -178,12 +179,22 @@ public class DriverEditDialog extends HelpEnabledDialog {
});
UIUtils
.
createControlLabel
(
propsGroup
,
"Driver Type"
);
final
CImageCombo
<
DataSourceProviderDescriptor
>
providerCombo
=
new
CImageCombo
<>(
propsGroup
,
SWT
.
BORDER
|
SWT
.
READ_ONLY
|
SWT
.
DROP_DOWN
);
final
CImageCombo
<
DataSourceProviderDescriptor
>
providerCombo
=
new
CImageCombo
<>(
propsGroup
,
SWT
.
BORDER
|
SWT
.
READ_ONLY
|
SWT
.
DROP_DOWN
,
new
LabelProvider
()
{
@Override
public
Image
getImage
(
Object
element
)
{
return
DBeaverIcons
.
getImage
(((
DataSourceProviderDescriptor
)
element
).
getIcon
());
}
@Override
public
String
getText
(
Object
element
)
{
return
((
DataSourceProviderDescriptor
)
element
).
getName
();
}
});
providerCombo
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_HORIZONTAL
));
if
(
newDriver
)
{
for
(
DataSourceProviderDescriptor
p
:
DataSourceProviderRegistry
.
getInstance
().
getDataSourceProviders
())
{
if
(
p
.
isDriversManagable
())
{
providerCombo
.
add
(
p
.
getIcon
(),
p
.
getName
(),
null
,
p
);
for
(
DataSourceProviderDescriptor
p
rovider
:
DataSourceProviderRegistry
.
getInstance
().
getDataSourceProviders
())
{
if
(
p
rovider
.
isDriversManagable
())
{
providerCombo
.
add
Item
(
provider
);
}
}
providerCombo
.
select
(
provider
);
...
...
@@ -195,7 +206,7 @@ public class DriverEditDialog extends HelpEnabledDialog {
}
});
}
else
{
providerCombo
.
add
(
provider
.
getIcon
(),
provider
.
getName
(),
null
,
provider
);
providerCombo
.
add
Item
(
provider
);
providerCombo
.
select
(
provider
);
}
...
...
@@ -244,8 +255,8 @@ public class DriverEditDialog extends HelpEnabledDialog {
driverCategoryCombo
.
setEnabled
(
false
);
}
Set
<
String
>
categories
=
new
TreeSet
<>();
for
(
DataSourceProviderDescriptor
p
:
DataSourceProviderRegistry
.
getInstance
().
getDataSourceProviders
())
{
for
(
DriverDescriptor
drv
:
p
.
getEnabledDrivers
())
{
for
(
DataSourceProviderDescriptor
p
rovider
:
DataSourceProviderRegistry
.
getInstance
().
getDataSourceProviders
())
{
for
(
DriverDescriptor
drv
:
p
rovider
.
getEnabledDrivers
())
{
if
(!
CommonUtils
.
isEmpty
(
drv
.
getCategory
()))
{
categories
.
add
(
drv
.
getCategory
());
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
浏览文件 @
447be5ee
...
...
@@ -24,10 +24,14 @@ import org.eclipse.core.runtime.Status;
import
org.eclipse.core.runtime.jobs.IJobChangeEvent
;
import
org.eclipse.core.runtime.jobs.JobChangeAdapter
;
import
org.eclipse.jface.action.ToolBarManager
;
import
org.eclipse.jface.viewers.IColorProvider
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.LabelProvider
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.*
;
import
org.eclipse.swt.graphics.Color
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.Composite
;
...
...
@@ -62,6 +66,7 @@ import org.jkiss.dbeaver.model.struct.DBSObjectSelector;
import
org.jkiss.dbeaver.registry.DataSourceProviderRegistry
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.runtime.jobs.DataSourceJob
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.IActionConstants
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.DataSourcePropertyTester
;
...
...
@@ -333,26 +338,20 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
try
{
if
(
update
)
{
connectionCombo
.
removeAll
();
connectionCombo
.
add
(
DBIcon
.
TREE_DATABASE
,
EMPTY_SELECTION_TEXT
,
null
,
null
);
connectionCombo
.
add
Item
(
null
);
}
int
selectionIndex
=
0
;
if
(
activePart
!=
null
)
{
final
DBPDataSourceContainer
dataSourceContainer
=
getDataSourceContainer
();
if
(!
CommonUtils
.
isEmpty
(
dataSources
))
{
DBNModel
navigatorModel
=
DBeaverCore
.
getInstance
().
getNavigatorModel
();
for
(
int
i
=
0
;
i
<
dataSources
.
size
();
i
++)
{
DBPDataSourceContainer
ds
=
dataSources
.
get
(
i
);
if
(
ds
==
null
)
{
continue
;
}
if
(
update
)
{
DBNDatabaseNode
dsNode
=
navigatorModel
.
getNodeByObject
(
ds
);
connectionCombo
.
add
(
dsNode
==
null
?
DBIcon
.
TREE_DATABASE
:
dsNode
.
getNodeIconDefault
(),
ds
.
getName
(),
UIUtils
.
getConnectionColor
(
ds
.
getConnectionConfiguration
()),
ds
);
connectionCombo
.
addItem
(
ds
);
}
if
(
dataSourceContainer
==
ds
)
{
selectionIndex
=
i
+
1
;
...
...
@@ -487,7 +486,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
DBeaverUI
.
syncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
fillDatabaseList
((
DatabaseListReader
)
event
.
getJob
()
,
dsContainer
);
fillDatabaseList
((
DatabaseListReader
)
event
.
getJob
());
}
});
}
...
...
@@ -505,7 +504,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
}
}
private
synchronized
void
fillDatabaseList
(
DatabaseListReader
reader
,
DBPDataSourceContainer
dsContainer
)
{
private
synchronized
void
fillDatabaseList
(
DatabaseListReader
reader
)
{
synchronized
(
dbListReads
)
{
dbListReads
.
remove
(
reader
);
}
...
...
@@ -522,11 +521,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
Collection
<
DBNDatabaseNode
>
dbList
=
reader
.
nodeList
;
if
(
dbList
!=
null
&&
!
dbList
.
isEmpty
())
{
for
(
DBNDatabaseNode
node
:
dbList
)
{
databaseCombo
.
add
(
node
.
getNodeIconDefault
(),
node
.
getName
(),
UIUtils
.
getConnectionColor
(
node
.
getObject
().
getDataSource
().
getContainer
().
getConnectionConfiguration
()),
node
);
databaseCombo
.
addItem
(
node
);
}
}
if
(
reader
.
active
!=
null
)
{
...
...
@@ -709,7 +704,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
final
int
fontHeight
=
UIUtils
.
getFontHeight
(
parent
);
int
comboWidth
=
fontHeight
*
20
;
connectionCombo
=
new
CImageCombo
<>(
comboGroup
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
|
SWT
.
BORDER
);
connectionCombo
=
new
CImageCombo
<>(
comboGroup
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
|
SWT
.
BORDER
,
new
ConnectionLabelProvider
()
);
GridData
gd
=
new
GridData
();
gd
.
widthHint
=
comboWidth
;
gd
.
minimumWidth
=
comboWidth
;
...
...
@@ -718,7 +713,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
connectionCombo
.
setVisibleItemCount
(
15
);
connectionCombo
.
setWidthHint
(
comboWidth
);
connectionCombo
.
setToolTipText
(
CoreMessages
.
toolbar_datasource_selector_combo_datasource_tooltip
);
connectionCombo
.
add
(
DBIcon
.
TREE_DATABASE
,
EMPTY_SELECTION_TEXT
,
null
,
null
);
connectionCombo
.
add
Item
(
null
);
connectionCombo
.
select
(
0
);
connectionCombo
.
addSelectionListener
(
new
SelectionListener
()
{
@Override
...
...
@@ -733,7 +728,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
});
comboWidth
=
fontHeight
*
16
;
databaseCombo
=
new
CImageCombo
<>(
comboGroup
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
|
SWT
.
BORDER
);
databaseCombo
=
new
CImageCombo
<>(
comboGroup
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
|
SWT
.
BORDER
,
new
DatabaseLabelProvider
()
);
gd
=
new
GridData
();
gd
.
widthHint
=
comboWidth
;
gd
.
minimumWidth
=
comboWidth
;
...
...
@@ -742,7 +737,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
databaseCombo
.
setVisibleItemCount
(
15
);
databaseCombo
.
setWidthHint
(
comboWidth
);
databaseCombo
.
setToolTipText
(
CoreMessages
.
toolbar_datasource_selector_combo_database_tooltip
);
databaseCombo
.
add
(
DBIcon
.
TREE_DATABASE
,
EMPTY_SELECTION_TEXT
,
null
,
null
);
databaseCombo
.
add
Item
(
null
);
databaseCombo
.
select
(
0
);
databaseCombo
.
addSelectionListener
(
new
SelectionListener
()
{
@Override
...
...
@@ -846,4 +841,68 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
return
toolbar
.
createControl
(
parent
);
}
}
private
static
class
ConnectionLabelProvider
extends
LabelProvider
implements
IColorProvider
{
@Override
public
Image
getImage
(
Object
element
)
{
if
(
element
==
null
)
{
return
DBeaverIcons
.
getImage
(
DBIcon
.
TREE_DATABASE
);
}
final
DBNDatabaseNode
node
=
DBeaverCore
.
getInstance
().
getNavigatorModel
().
findNode
((
DBPDataSourceContainer
)
element
);
return
node
==
null
?
null
:
DBeaverIcons
.
getImage
(
node
.
getNodeIcon
());
}
@Override
public
String
getText
(
Object
element
)
{
if
(
element
==
null
)
{
return
EMPTY_SELECTION_TEXT
;
}
return
((
DBPDataSourceContainer
)
element
).
getName
();
}
@Override
public
Color
getForeground
(
Object
element
)
{
return
null
;
}
@Override
public
Color
getBackground
(
Object
element
)
{
return
element
==
null
?
null
:
UIUtils
.
getConnectionColor
(((
DBPDataSourceContainer
)
element
).
getConnectionConfiguration
());
}
}
private
static
class
DatabaseLabelProvider
extends
LabelProvider
implements
IColorProvider
{
@Override
public
Image
getImage
(
Object
element
)
{
if
(
element
==
null
)
{
return
DBeaverIcons
.
getImage
(
DBIcon
.
TREE_DATABASE
);
}
return
DBeaverIcons
.
getImage
(((
DBNDatabaseNode
)
element
).
getNodeIconDefault
());
}
@Override
public
String
getText
(
Object
element
)
{
if
(
element
==
null
)
{
return
EMPTY_SELECTION_TEXT
;
}
return
((
DBNDatabaseNode
)
element
).
getNodeName
();
}
@Override
public
Color
getForeground
(
Object
element
)
{
return
null
;
}
@Override
public
Color
getBackground
(
Object
element
)
{
if
(
element
instanceof
DBNDatabaseNode
)
{
final
DBPDataSourceContainer
container
=
((
DBNDatabaseNode
)
element
).
getDataSourceContainer
();
if
(
container
!=
null
)
{
return
UIUtils
.
getConnectionColor
((
container
.
getConnectionConfiguration
()));
}
}
return
null
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录