Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
42328440
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,发现更多精彩内容 >>
提交
42328440
编写于
9月 20, 2020
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#9822 Tunnel action handler impl + UI connection service additions
上级
9e0393e3
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
109 addition
and
28 deletion
+109
-28
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/UIServiceConnectionsImpl.java
...eaver/ui/actions/datasource/UIServiceConnectionsImpl.java
+7
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
...dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
+11
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
...jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionDialog.java
...s/dbeaver/ui/dialogs/connection/EditConnectionDialog.java
+15
-3
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/ui/UIServiceConnections.java
...rc/org/jkiss/dbeaver/runtime/ui/UIServiceConnections.java
+7
-5
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/NavigatorHandlerObjectOpen.java
...aver/ui/navigator/actions/NavigatorHandlerObjectOpen.java
+1
-2
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
...eaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
+11
-1
plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/ICompositeDialogPageContainer.java
...c/org/jkiss/dbeaver/ui/ICompositeDialogPageContainer.java
+29
-0
plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/dialogs/MultiPageWizardDialog.java
...c/org/jkiss/dbeaver/ui/dialogs/MultiPageWizardDialog.java
+27
-10
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/UIServiceConnectionsImpl.java
浏览文件 @
42328440
...
...
@@ -17,6 +17,7 @@
package
org.jkiss.dbeaver.ui.actions.datasource
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
...
...
@@ -35,27 +36,27 @@ public class UIServiceConnectionsImpl implements DBServiceConnections, UIService
private
static
final
Log
log
=
Log
.
getLog
(
UIServiceConnectionsImpl
.
class
);
@Override
public
void
openConnectionEditor
(
DBPDataSourceContainer
dataSourceContainer
)
{
EditConnectionDialog
.
openEditConnectionDialog
(
UIUtils
.
getActiveWorkbenchWindow
(),
dataSourceContainer
);
public
void
openConnectionEditor
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
,
String
defaultPageName
)
{
EditConnectionDialog
.
openEditConnectionDialog
(
UIUtils
.
getActiveWorkbenchWindow
(),
dataSourceContainer
,
defaultPageName
);
}
@Override
public
void
connectDataSource
(
DBPDataSourceContainer
dataSourceContainer
,
DBRProgressListener
onFinish
)
{
public
void
connectDataSource
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
,
DBRProgressListener
onFinish
)
{
DataSourceHandler
.
connectToDataSource
(
null
,
dataSourceContainer
,
onFinish
);
}
@Override
public
void
disconnectDataSource
(
DBPDataSourceContainer
dataSourceContainer
)
{
public
void
disconnectDataSource
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
)
{
DataSourceHandler
.
disconnectDataSource
(
dataSourceContainer
,
null
);
}
@Override
public
void
closeActiveTransaction
(
DBRProgressMonitor
monitor
,
DBCExecutionContext
context
,
boolean
commitTxn
)
{
public
void
closeActiveTransaction
(
@NotNull
DBRProgressMonitor
monitor
,
@NotNull
DBCExecutionContext
context
,
boolean
commitTxn
)
{
DataSourceHandler
.
closeActiveTransaction
(
monitor
,
context
,
commitTxn
);
}
@Override
public
boolean
checkAndCloseActiveTransaction
(
DBCExecutionContext
[]
contexts
)
{
public
boolean
checkAndCloseActiveTransaction
(
@NotNull
DBCExecutionContext
[]
contexts
)
{
return
DataSourceHandler
.
checkAndCloseActiveTransaction
(
contexts
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
浏览文件 @
42328440
...
...
@@ -56,7 +56,7 @@ import java.util.*;
/**
* Settings connection page. Hosts particular drivers' connection pages
*/
class
ConnectionPageSettings
extends
ActiveWizardPage
<
ConnectionWizard
>
implements
IDataSourceConnectionEditorSite
,
ICompositeDialogPage
,
IDataSourceConnectionTester
{
class
ConnectionPageSettings
extends
ActiveWizardPage
<
ConnectionWizard
>
implements
IDataSourceConnectionEditorSite
,
ICompositeDialogPage
,
I
CompositeDialogPageContainer
,
I
DataSourceConnectionTester
{
private
static
final
Log
log
=
Log
.
getLog
(
DriverDescriptor
.
class
);
public
static
final
String
PAGE_NAME
=
ConnectionPageSettings
.
class
.
getSimpleName
();
...
...
@@ -410,4 +410,14 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
public
String
toString
()
{
return
getName
();
}
@Override
public
void
showSubPage
(
IDialogPage
subPage
)
{
for
(
TabItem
pageTab
:
tabFolder
.
getItems
())
{
if
(
pageTab
.
getData
()
==
subPage
)
{
tabFolder
.
setSelection
(
pageTab
);
break
;
}
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
浏览文件 @
42328440
...
...
@@ -235,6 +235,7 @@ public abstract class ConnectionWizard extends ActiveWizard implements INewWizar
final
IWizardPage
page
=
getPage
(
pageId
);
if
(
page
!=
null
)
{
getContainer
().
showPage
(
page
);
return
true
;
}
return
false
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionDialog.java
浏览文件 @
42328440
...
...
@@ -50,6 +50,7 @@ public class EditConnectionDialog extends MultiPageWizardDialog {
private
static
String
lastActivePage
;
private
Button
testButton
;
private
String
defaultPageName
;
private
EditConnectionDialog
(
IWorkbenchWindow
window
,
ConnectionWizard
wizard
)
{
super
(
window
,
wizard
);
...
...
@@ -74,8 +75,15 @@ public class EditConnectionDialog extends MultiPageWizardDialog {
protected
Control
createContents
(
Composite
parent
)
{
Control
contents
=
super
.
createContents
(
parent
);
if
(!
CommonUtils
.
isEmpty
(
lastActivePage
))
{
getWizard
().
openSettingsPage
(
lastActivePage
);
String
activePage
=
defaultPageName
;
if
(
CommonUtils
.
isEmpty
(
activePage
))
{
activePage
=
lastActivePage
;
}
if
(!
CommonUtils
.
isEmpty
(
activePage
))
{
String
finalActivePage
=
activePage
;
UIUtils
.
asyncExec
(()
->
{
getWizard
().
openSettingsPage
(
finalActivePage
);
});
}
return
contents
;
...
...
@@ -132,15 +140,19 @@ public class EditConnectionDialog extends MultiPageWizardDialog {
getWizard
().
testConnection
();
}
public
static
boolean
openEditConnectionDialog
(
IWorkbenchWindow
window
,
DBPDataSourceContainer
dataSource
)
{
public
static
boolean
openEditConnectionDialog
(
IWorkbenchWindow
window
,
DBPDataSourceContainer
dataSource
,
String
defaultPageName
)
{
EditConnectionDialog
dialog
=
openDialogs
.
get
(
dataSource
);
if
(
dialog
!=
null
)
{
if
(
defaultPageName
!=
null
)
{
dialog
.
showPage
(
defaultPageName
);
}
dialog
.
getShell
().
forceActive
();
return
true
;
}
EditConnectionWizard
wizard
=
new
EditConnectionWizard
((
DataSourceDescriptor
)
dataSource
);
dialog
=
new
EditConnectionDialog
(
window
,
wizard
);
dialog
.
defaultPageName
=
defaultPageName
;
openDialogs
.
put
(
dataSource
,
dialog
);
try
{
return
dialog
.
open
()
==
IDialogConstants
.
OK_ID
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/ui/UIServiceConnections.java
浏览文件 @
42328440
...
...
@@ -17,6 +17,8 @@
package
org.jkiss.dbeaver.runtime.ui
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressListener
;
...
...
@@ -27,14 +29,14 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
*/
public
interface
UIServiceConnections
{
void
openConnectionEditor
(
DBPDataSourceContainer
dataSourceContainer
);
void
openConnectionEditor
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
,
@Nullable
String
defaultPageName
);
void
connectDataSource
(
DBPDataSourceContainer
dataSourceContainer
,
DBRProgressListener
onFinish
);
void
connectDataSource
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
,
DBRProgressListener
onFinish
);
void
disconnectDataSource
(
DBPDataSourceContainer
dataSourceContainer
);
void
disconnectDataSource
(
@NotNull
DBPDataSourceContainer
dataSourceContainer
);
void
closeActiveTransaction
(
DBRProgressMonitor
monitor
,
DBCExecutionContext
context
,
boolean
commitTxn
);
void
closeActiveTransaction
(
@NotNull
DBRProgressMonitor
monitor
,
@NotNull
DBCExecutionContext
context
,
boolean
commitTxn
);
boolean
checkAndCloseActiveTransaction
(
DBCExecutionContext
[]
contexts
);
boolean
checkAndCloseActiveTransaction
(
@NotNull
DBCExecutionContext
[]
contexts
);
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/NavigatorHandlerObjectOpen.java
浏览文件 @
42328440
...
...
@@ -39,7 +39,6 @@ import org.jkiss.dbeaver.model.DBUtils;
import
org.jkiss.dbeaver.model.edit.DBEObjectEditor
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.DBSObjectContainer
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.ui.UIServiceConnections
;
import
org.jkiss.dbeaver.runtime.ui.UIServiceSQL
;
...
...
@@ -271,7 +270,7 @@ public class NavigatorHandlerObjectOpen extends NavigatorHandlerObjectBase imple
public
static
void
openConnectionEditor
(
IWorkbenchWindow
workbenchWindow
,
DBPDataSourceContainer
dataSourceContainer
)
{
UIServiceConnections
serviceConnections
=
DBWorkbench
.
getService
(
UIServiceConnections
.
class
);
if
(
serviceConnections
!=
null
)
{
serviceConnections
.
openConnectionEditor
(
dataSourceContainer
);
serviceConnections
.
openConnectionEditor
(
dataSourceContainer
,
null
);
}
}
...
...
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/actions/node/NNAHDataSourceTunnel.java
浏览文件 @
42328440
...
...
@@ -18,10 +18,14 @@
package
org.jkiss.dbeaver.ui.navigator.actions.node
;
import
org.eclipse.swt.widgets.Event
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.net.DBWHandlerConfiguration
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.runtime.ui.UIServiceConnections
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.navigator.INavigatorModelView
;
import
org.jkiss.dbeaver.ui.navigator.actions.NavigatorNodeActionHandlerAbstract
;
...
...
@@ -62,7 +66,13 @@ public class NNAHDataSourceTunnel extends NavigatorNodeActionHandlerAbstract {
@Override
public
void
handleNodeAction
(
INavigatorModelView
view
,
DBNNode
node
,
Event
event
,
boolean
defaultAction
)
{
if
(
node
instanceof
DBNDatabaseNode
)
{
DBPDataSourceContainer
dataSourceContainer
=
((
DBNDatabaseNode
)
node
).
getDataSourceContainer
();
UIServiceConnections
serviceConnections
=
DBWorkbench
.
getService
(
UIServiceConnections
.
class
);
if
(
serviceConnections
!=
null
)
{
serviceConnections
.
openConnectionEditor
(
dataSourceContainer
,
"ConnectionPageNetworkHandler.ssh_tunnel"
);
}
}
}
}
plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/ICompositeDialogPageContainer.java
0 → 100644
浏览文件 @
42328440
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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
;
import
org.eclipse.jface.dialogs.IDialogPage
;
/**
* ICompositeDialogPageContainer
*/
public
interface
ICompositeDialogPageContainer
extends
ICompositeDialogPage
{
void
showSubPage
(
IDialogPage
subPage
);
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/dialogs/MultiPageWizardDialog.java
浏览文件 @
42328440
...
...
@@ -41,6 +41,7 @@ import org.eclipse.ui.IWorkbenchWindow;
import
org.eclipse.ui.IWorkbenchWizard
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.ICompositeDialogPage
;
import
org.jkiss.dbeaver.ui.ICompositeDialogPageContainer
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.preferences.PreferenceStoreDelegate
;
import
org.jkiss.utils.ArrayUtils
;
...
...
@@ -209,17 +210,17 @@ public class MultiPageWizardDialog extends TitleAreaDialog implements IWizardCon
}
private
void
changePage
()
{
TreeItem
[]
selection
=
pagesTree
.
getSelection
();
if
(
selection
.
length
!=
1
)
{
return
;
}
TreeItem
newItem
=
selection
[
0
];
if
(
prevPage
==
newItem
.
getData
())
{
return
;
}
pageArea
.
setRedraw
(
false
);
try
{
TreeItem
[]
selection
=
pagesTree
.
getSelection
();
if
(
selection
.
length
!=
1
)
{
return
;
}
TreeItem
newItem
=
selection
[
0
];
if
(
prevPage
==
newItem
.
getData
())
{
return
;
}
GridData
gd
;
if
(
prevPage
!=
null
)
{
gd
=
(
GridData
)
prevPage
.
getControl
().
getLayoutData
();
...
...
@@ -306,7 +307,20 @@ public class MultiPageWizardDialog extends TitleAreaDialog implements IWizardCon
if
(
item
.
getData
()
==
page
)
{
pagesTree
.
setSelection
(
item
);
changePage
();
break
;
return
;
}
if
(
item
.
getData
()
instanceof
ICompositeDialogPageContainer
)
{
IDialogPage
[]
subPages
=
((
ICompositeDialogPageContainer
)
item
.
getData
()).
getSubPages
(
false
,
false
);
if
(!
ArrayUtils
.
isEmpty
(
subPages
))
{
for
(
IDialogPage
subPage
:
subPages
)
{
if
(
subPage
==
page
)
{
pagesTree
.
setSelection
(
item
);
changePage
();
((
ICompositeDialogPageContainer
)
item
.
getData
()).
showSubPage
(
page
);
return
;
}
}
}
}
for
(
TreeItem
child
:
item
.
getItems
())
{
if
(
child
.
getData
()
==
page
)
{
...
...
@@ -396,4 +410,7 @@ public class MultiPageWizardDialog extends TitleAreaDialog implements IWizardCon
}
}
protected
void
showPage
(
String
pageName
)
{
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录