Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8deb5502
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,发现更多精彩内容 >>
提交
8deb5502
编写于
6月 27, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Hierarchical ds providers
上级
db55aa53
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
77 addition
and
50 deletion
+77
-50
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
.../jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
+3
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
.../dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
+19
-9
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
...dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
+4
-26
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
...jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
+32
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
...ss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
+19
-15
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
浏览文件 @
8deb5502
...
...
@@ -73,6 +73,9 @@ public class DataSourceProviderDescriptor extends AbstractDescriptor
String
parentId
=
config
.
getAttribute
(
RegistryConstants
.
ATTR_PARENT
);
if
(!
CommonUtils
.
isEmpty
(
parentId
))
{
this
.
parentProvider
=
registry
.
getDataSourceProvider
(
parentId
);
if
(
this
.
parentProvider
==
null
)
{
log
.
warn
(
"Provider '"
+
parentId
+
"' not found"
);
}
}
else
{
this
.
parentProvider
=
null
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
浏览文件 @
8deb5502
...
...
@@ -30,6 +30,7 @@ import org.eclipse.swt.graphics.Font;
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.DBException
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.Log
;
...
...
@@ -132,9 +133,10 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
{
if
(
connectionNameText
!=
null
)
{
ConnectionPageSettings
settings
=
wizard
.
getPageSettings
();
if
(
settings
!=
null
&&
connectionNameText
!=
null
&&
(
CommonUtils
.
isEmpty
(
connectionNameText
.
getText
())
||
!
connectionNameChanged
))
{
String
newName
;
if
(
settings
!=
null
&&
(
CommonUtils
.
isEmpty
(
connectionNameText
.
getText
())
||
!
connectionNameChanged
))
{
DBPConnectionConfiguration
connectionInfo
=
settings
.
getActiveDataSource
().
getConnectionConfiguration
();
String
newName
=
dataSourceDescriptor
==
null
?
""
:
dataSourceDescriptor
.
getName
();
//$NON-NLS-1$
newName
=
dataSourceDescriptor
==
null
?
""
:
dataSourceDescriptor
.
getName
();
//$NON-NLS-1$
if
(
CommonUtils
.
isEmpty
(
newName
))
{
newName
=
connectionInfo
.
getDatabaseName
();
if
(
CommonUtils
.
isEmpty
(
newName
))
{
...
...
@@ -157,9 +159,11 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
newName
=
CommonUtils
.
truncateString
(
newName
,
50
);
}
connectionNameText
.
setText
(
newName
);
connectionNameChanged
=
false
;
}
else
{
newName
=
wizard
.
getSelectedDriver
().
getName
()
;
}
connectionNameText
.
setText
(
newName
);
connectionNameChanged
=
false
;
}
if
(
dataSourceDescriptor
!=
null
)
{
if
(!
activated
)
{
...
...
@@ -196,7 +200,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
else
{
if
(
eventsButton
!=
null
)
{
eventsButton
.
setFont
(
getFont
());
DataSourceDescriptor
dataSource
=
get
Wizard
().
getPageSettings
().
get
ActiveDataSource
();
DataSourceDescriptor
dataSource
=
getActiveDataSource
();
for
(
DBPConnectionEventType
eventType
:
dataSource
.
getConnectionConfiguration
().
getDeclaredEvents
())
{
if
(
dataSource
.
getConnectionConfiguration
().
getEvent
(
eventType
).
isEnabled
())
{
eventsButton
.
setFont
(
boldFont
);
...
...
@@ -218,7 +222,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
long
features
=
0
;
try
{
features
=
wizard
.
get
PageSettings
().
get
Driver
().
getDataSourceProvider
().
getFeatures
();
features
=
wizard
.
get
Selected
Driver
().
getDataSourceProvider
().
getFeatures
();
}
catch
(
DBException
e
)
{
log
.
error
(
"Can't obtain data source provider instance"
,
e
);
//$NON-NLS-1$
}
...
...
@@ -235,6 +239,12 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
filtersGroup
.
layout
();
}
@NotNull
private
DataSourceDescriptor
getActiveDataSource
()
{
ConnectionPageSettings
pageSettings
=
getWizard
().
getPageSettings
();
return
pageSettings
==
null
?
wizard
.
getActiveDataSource
()
:
pageSettings
.
getActiveDataSource
();
}
private
void
enableFilter
(
FilterInfo
filterInfo
,
boolean
enable
)
{
filterInfo
.
link
.
setEnabled
(
enable
);
...
...
@@ -248,7 +258,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
}
else
{
filterInfo
.
link
.
setText
(
NLS
.
bind
(
CoreMessages
.
dialog_connection_wizard_final_filter_link_not_supported_text
,
filterInfo
.
title
));
filterInfo
.
link
.
setToolTipText
(
NLS
.
bind
(
CoreMessages
.
dialog_connection_wizard_final_filter_link_not_supported_tooltip
,
filterInfo
.
title
,
wizard
.
get
PageSettings
().
get
Driver
().
getName
()));
filterInfo
.
link
.
setToolTipText
(
NLS
.
bind
(
CoreMessages
.
dialog_connection_wizard_final_filter_link_not_supported_tooltip
,
filterInfo
.
title
,
wizard
.
get
Selected
Driver
().
getName
()));
}
}
...
...
@@ -298,7 +308,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
DataSourceDescriptor
dataSource
=
wizard
.
getPageSettings
().
getActiveDataSource
();
DataSourceDescriptor
dataSource
=
getActiveDataSource
();
UIUtils
.
showPreferencesFor
(
getControl
().
getShell
(),
dataSource
.
getConnectionConfiguration
().
getConnectionType
(),
...
...
@@ -526,7 +536,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
private
void
configureEvents
()
{
DataSourceDescriptor
dataSource
=
get
Wizard
().
getPageSettings
().
get
ActiveDataSource
();
DataSourceDescriptor
dataSource
=
getActiveDataSource
();
EditShellCommandsDialog
dialog
=
new
EditShellCommandsDialog
(
getShell
(),
dataSource
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
浏览文件 @
8deb5502
...
...
@@ -17,7 +17,6 @@
*/
package
org.jkiss.dbeaver.ui.dialogs.connection
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.dialogs.IDialogPage
;
import
org.eclipse.osgi.util.NLS
;
...
...
@@ -31,18 +30,14 @@ import org.eclipse.swt.widgets.TabItem;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableContext
;
import
org.jkiss.dbeaver.runtime.RunnableContextDelegate
;
import
org.jkiss.dbeaver.ui.ICompositeDialogPage
;
import
org.jkiss.dbeaver.ui.IDataSourceConnectionEditor
;
import
org.jkiss.dbeaver.ui.IDataSourceConnectionEditorSite
;
import
org.jkiss.dbeaver.model.DBPConnectionConfiguration
;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.registry.DataSourceViewDescriptor
;
import
org.jkiss.dbeaver.registry.DriverDescriptor
;
import
org.jkiss.dbeaver.
ui.IHelpContextIds
;
import
org.jkiss.dbeaver.ui.
UIUtils
;
import
org.jkiss.dbeaver.
runtime.RunnableContextDelegate
;
import
org.jkiss.dbeaver.ui.
*
;
import
org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage
;
import
org.jkiss.dbeaver.ui.dialogs.driver.DriverEditDialog
;
import
org.jkiss.utils.ArrayUtils
;
...
...
@@ -65,7 +60,6 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
private
IDataSourceConnectionEditor
connectionEditor
;
@Nullable
private
DataSourceDescriptor
dataSource
;
private
final
Map
<
DriverDescriptor
,
DataSourceDescriptor
>
infoMap
=
new
HashMap
<
DriverDescriptor
,
DataSourceDescriptor
>();
private
final
Set
<
DataSourceDescriptor
>
activated
=
new
HashSet
<
DataSourceDescriptor
>();
private
IDialogPage
[]
subPages
;
...
...
@@ -228,19 +222,7 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
if
(
dataSource
!=
null
)
{
return
dataSource
;
}
DriverDescriptor
driver
=
getDriver
();
DataSourceDescriptor
info
=
infoMap
.
get
(
driver
);
if
(
info
==
null
)
{
DBPConnectionConfiguration
connectionInfo
=
new
DBPConnectionConfiguration
();
info
=
new
DataSourceDescriptor
(
wizard
.
getDataSourceRegistry
(),
DataSourceDescriptor
.
generateNewId
(
wizard
.
getSelectedDriver
()),
wizard
.
getSelectedDriver
(),
connectionInfo
);
info
.
getConnectionConfiguration
().
setClientHomeId
(
driver
.
getDefaultClientHomeId
());
infoMap
.
put
(
driver
,
info
);
}
return
info
;
return
wizard
.
getActiveDataSource
();
}
@Override
...
...
@@ -263,10 +245,6 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
connectionEditor
.
dispose
();
connectionEditor
=
null
;
}
// Dispose all temp data sources
for
(
DataSourceDescriptor
dataSource
:
infoMap
.
values
())
{
dataSource
.
dispose
();
}
super
.
dispose
();
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
浏览文件 @
8deb5502
...
...
@@ -17,6 +17,7 @@
*/
package
org.jkiss.dbeaver.ui.dialogs.connection
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.jface.dialogs.MessageDialog
;
import
org.eclipse.jface.wizard.Wizard
;
...
...
@@ -25,6 +26,7 @@ import org.eclipse.ui.INewWizard;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.model.DBConstants
;
import
org.jkiss.dbeaver.model.DBPConnectionConfiguration
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPDataSourceInfo
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionPurpose
;
...
...
@@ -41,6 +43,8 @@ import org.jkiss.utils.CommonUtils;
import
java.lang.reflect.InvocationTargetException
;
import
java.sql.Connection
;
import
java.sql.DatabaseMetaData
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* Abstract connection wizard
...
...
@@ -51,6 +55,7 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
// protected final IProject project;
protected
final
DataSourceRegistry
dataSourceRegistry
;
private
final
Map
<
DriverDescriptor
,
DataSourceDescriptor
>
infoMap
=
new
HashMap
<
DriverDescriptor
,
DataSourceDescriptor
>();
protected
ConnectionWizard
(
DataSourceRegistry
dataSourceRegistry
)
{
...
...
@@ -58,6 +63,15 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
this
.
dataSourceRegistry
=
dataSourceRegistry
;
}
@Override
public
void
dispose
()
{
// Dispose all temp data sources
for
(
DataSourceDescriptor
dataSource
:
infoMap
.
values
())
{
dataSource
.
dispose
();
}
super
.
dispose
();
}
public
DataSourceRegistry
getDataSourceRegistry
()
{
return
dataSourceRegistry
;
}
...
...
@@ -68,6 +82,24 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
protected
abstract
void
saveSettings
(
DataSourceDescriptor
dataSource
);
@NotNull
public
DataSourceDescriptor
getActiveDataSource
()
{
DriverDescriptor
driver
=
getSelectedDriver
();
DataSourceDescriptor
info
=
infoMap
.
get
(
driver
);
if
(
info
==
null
)
{
DBPConnectionConfiguration
connectionInfo
=
new
DBPConnectionConfiguration
();
info
=
new
DataSourceDescriptor
(
getDataSourceRegistry
(),
DataSourceDescriptor
.
generateNewId
(
getSelectedDriver
()),
getSelectedDriver
(),
connectionInfo
);
info
.
getConnectionConfiguration
().
setClientHomeId
(
driver
.
getDefaultClientHomeId
());
infoMap
.
put
(
driver
,
info
);
}
return
info
;
}
public
void
testConnection
()
{
DataSourceDescriptor
dataSource
=
getPageSettings
().
getActiveDataSource
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
浏览文件 @
8deb5502
...
...
@@ -113,15 +113,14 @@ public class NewConnectionWizard extends ConnectionWizard
for
(
DataSourceProviderDescriptor
provider
:
providers
)
{
monitor
.
subTask
(
provider
.
getName
());
DataSourceViewDescriptor
view
=
provider
.
getView
(
IActionConstants
.
NEW_CONNECTION_POINT
);
if
(
view
==
null
)
{
continue
;
}
availableProvides
.
add
(
provider
);
ConnectionPageSettings
pageSettings
=
new
ConnectionPageSettings
(
NewConnectionWizard
.
this
,
view
);
settingsPages
.
put
(
provider
,
pageSettings
);
addPage
(
pageSettings
);
if
(
view
!=
null
)
{
ConnectionPageSettings
pageSettings
=
new
ConnectionPageSettings
(
NewConnectionWizard
.
this
,
view
);
settingsPages
.
put
(
provider
,
pageSettings
);
addPage
(
pageSettings
);
}
monitor
.
worked
(
1
);
}
monitor
.
done
();
...
...
@@ -143,13 +142,14 @@ public class NewConnectionWizard extends ConnectionWizard
public
IWizardPage
getNextPage
(
IWizardPage
page
)
{
if
(
page
==
pageDrivers
)
{
return
getPageSettings
(
pageDrivers
.
getSelectedDriver
());
}
else
if
(
page
instanceof
ConnectionPageSettings
)
{
if
(
pageDrivers
.
getSelectedDriver
().
isEmbedded
())
{
return
pageGeneral
;
ConnectionPageSettings
pageSettings
=
getPageSettings
(
pageDrivers
.
getSelectedDriver
());
if
(
pageSettings
==
null
)
{
return
pageDrivers
.
getSelectedDriver
().
isEmbedded
()
?
pageGeneral
:
pageNetwork
;
}
else
{
return
page
Network
;
return
page
Settings
;
}
}
else
if
(
page
instanceof
ConnectionPageSettings
)
{
return
pageDrivers
.
getSelectedDriver
().
isEmbedded
()
?
pageGeneral
:
pageNetwork
;
}
else
if
(
page
instanceof
ConnectionPageNetwork
)
{
return
pageGeneral
;
}
else
{
...
...
@@ -166,7 +166,8 @@ public class NewConnectionWizard extends ConnectionWizard
public
boolean
performFinish
()
{
DriverDescriptor
driver
=
getSelectedDriver
();
DataSourceDescriptor
dataSourceTpl
=
getPageSettings
().
getActiveDataSource
();
ConnectionPageSettings
pageSettings
=
getPageSettings
();
DataSourceDescriptor
dataSourceTpl
=
pageSettings
==
null
?
getActiveDataSource
()
:
pageSettings
.
getActiveDataSource
();
DataSourceDescriptor
dataSourceNew
=
new
DataSourceDescriptor
(
dataSourceRegistry
,
dataSourceTpl
.
getId
(),
driver
,
dataSourceTpl
.
getConnectionConfiguration
());
dataSourceNew
.
copyFrom
(
dataSourceTpl
);
...
...
@@ -182,7 +183,10 @@ public class NewConnectionWizard extends ConnectionWizard
@Override
protected
void
saveSettings
(
DataSourceDescriptor
dataSource
)
{
getPageSettings
(
dataSource
.
getDriver
()).
saveSettings
(
dataSource
);
ConnectionPageSettings
pageSettings
=
getPageSettings
(
dataSource
.
getDriver
());
if
(
pageSettings
!=
null
)
{
pageSettings
.
saveSettings
(
dataSource
);
}
pageGeneral
.
saveSettings
(
dataSource
);
pageNetwork
.
saveConfigurations
(
dataSource
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录