Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8c75e6c8
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
8c75e6c8
编写于
9月 17, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Data source selector dialog fix (multi-projects)
上级
0c6062ed
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
28 addition
and
23 deletion
+28
-23
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerAssociateScript.java
...ui/actions/navigator/NavigatorHandlerAssociateScript.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
...dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
+24
-14
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
...dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java
.../dbeaver/ui/navigator/database/DatabaseNavigatorView.java
+1
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
.../src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
+1
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerAssociateScript.java
浏览文件 @
8c75e6c8
...
...
@@ -55,7 +55,7 @@ public class NavigatorHandlerAssociateScript extends NavigatorHandlerObjectBase
}
}
if
(!
scripts
.
isEmpty
())
{
DBPDataSourceContainer
dataSourceDescriptor
=
SelectDataSourceDialog
.
selectDataSource
(
activeShell
);
DBPDataSourceContainer
dataSourceDescriptor
=
SelectDataSourceDialog
.
selectDataSource
(
activeShell
,
scripts
.
get
(
0
).
getProject
()
);
if
(
dataSourceDescriptor
!=
null
)
{
for
(
IFile
script
:
scripts
)
{
EditorUtils
.
setFileDataSource
(
script
,
dataSourceDescriptor
,
true
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/SelectDataSourceDialog.java
浏览文件 @
8c75e6c8
...
...
@@ -17,6 +17,7 @@
*/
package
org.jkiss.dbeaver.ui.dialogs.connection
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.jface.dialogs.Dialog
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.dialogs.IDialogSettings
;
...
...
@@ -26,12 +27,12 @@ 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.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNLocalFolder
;
import
org.jkiss.dbeaver.model.navigator.DBNProject
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree
;
...
...
@@ -45,13 +46,16 @@ import java.util.List;
*/
public
class
SelectDataSourceDialog
extends
Dialog
{
@Nullable
private
final
IProject
project
;
private
DBPDataSourceContainer
dataSource
=
null
;
private
static
final
String
DIALOG_ID
=
"DBeaver.SelectDataSourceDialog"
;
//$NON-NLS-1$
private
SelectDataSourceDialog
(
Shell
parentShell
)
private
SelectDataSourceDialog
(
@NotNull
Shell
parentShell
,
@Nullable
IProject
project
)
{
super
(
parentShell
);
this
.
project
=
project
;
}
@Override
...
...
@@ -76,15 +80,24 @@ public class SelectDataSourceDialog extends Dialog {
group
.
setLayoutData
(
gd
);
DBeaverCore
core
=
DBeaverCore
.
getInstance
();
DBNProject
rootNode
=
core
.
getNavigatorModel
().
getRoot
().
getProject
(
core
.
getProjectRegistry
().
getActiveProject
());
DBNNode
rootNode
=
null
;
if
(
project
!=
null
)
{
DBNProject
projectNode
=
core
.
getNavigatorModel
().
getRoot
().
getProject
(
project
);
if
(
projectNode
!=
null
)
{
rootNode
=
projectNode
.
getDatabases
();
}
}
if
(
rootNode
==
null
)
{
rootNode
=
core
.
getNavigatorModel
().
getRoot
();
}
DatabaseNavigatorTree
dataSourceTree
=
new
DatabaseNavigatorTree
(
group
,
rootNode
.
getDatabases
()
,
SWT
.
SINGLE
|
SWT
.
BORDER
,
false
);
DatabaseNavigatorTree
dataSourceTree
=
new
DatabaseNavigatorTree
(
group
,
rootNode
,
SWT
.
SINGLE
|
SWT
.
BORDER
,
false
);
dataSourceTree
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_BOTH
));
dataSourceTree
.
getViewer
().
addFilter
(
new
ViewerFilter
()
{
@Override
public
boolean
select
(
Viewer
viewer
,
Object
parentElement
,
Object
element
)
{
return
element
instanceof
DBNLocalFolder
||
element
instanceof
DBNDataSource
;
return
element
instanceof
DBN
Project
||
element
instanceof
DBNProjectDatabases
||
element
instanceof
DBN
LocalFolder
||
element
instanceof
DBNDataSource
;
}
});
dataSourceTree
.
getViewer
().
addSelectionChangedListener
(
...
...
@@ -130,16 +143,13 @@ public class SelectDataSourceDialog extends Dialog {
return
dataSource
;
}
public
static
DBPDataSourceContainer
selectDataSource
(
Shell
parentShell
)
public
static
DBPDataSourceContainer
selectDataSource
(
@NotNull
Shell
parentShell
,
@Nullable
IProject
project
)
{
List
<
DataSourceDescriptor
>
datasources
=
DataSourceDescriptor
.
getActiveDataSources
();
if
(
datasources
.
isEmpty
())
{
UIUtils
.
showMessageBox
(
parentShell
,
CoreMessages
.
dialog_select_datasource_error_title
,
CoreMessages
.
dialog_select_datasource_error_message
,
SWT
.
ICON_ERROR
);
return
null
;
}
else
if
(
datasources
.
size
()
==
1
)
{
List
<
DataSourceDescriptor
>
datasources
=
DataSourceDescriptor
.
getAllDataSources
();
if
(
datasources
.
size
()
==
1
)
{
return
datasources
.
get
(
0
);
}
else
{
SelectDataSourceDialog
scDialog
=
new
SelectDataSourceDialog
(
parentShell
);
SelectDataSourceDialog
scDialog
=
new
SelectDataSourceDialog
(
parentShell
,
project
);
if
(
scDialog
.
open
()
==
IDialogConstants
.
OK_ID
)
{
return
scDialog
.
getDataSource
();
}
else
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/BaseSQLEditorHandler.java
浏览文件 @
8c75e6c8
...
...
@@ -59,7 +59,7 @@ public abstract class BaseSQLEditorHandler extends AbstractDataSourceHandler {
dataSourceContainer
=
dataSourceRegistry
.
getDataSources
().
get
(
0
);
}
else
if
(!
dataSourceRegistry
.
getDataSources
().
isEmpty
())
{
dataSourceContainer
=
SelectDataSourceDialog
.
selectDataSource
(
HandlerUtil
.
getActiveShell
(
event
));
HandlerUtil
.
getActiveShell
(
event
)
,
project
);
}
}
return
dataSourceContainer
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java
浏览文件 @
8c75e6c8
...
...
@@ -36,15 +36,10 @@ public class DatabaseNavigatorView extends NavigatorViewBase implements DBPProje
DBeaverCore
.
getInstance
().
getProjectRegistry
().
addProjectListener
(
this
);
}
private
DBNProject
getActiveProjectNode
()
{
return
getModel
().
getRoot
().
getProject
(
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
());
}
@Override
public
DBNNode
getRootNode
()
{
DBNProject
projectNode
=
get
ActiveProjectNode
(
);
DBNProject
projectNode
=
get
Model
().
getRoot
().
getProject
(
DBeaverCore
.
getInstance
().
getProjectRegistry
().
getActiveProject
()
);
return
projectNode
==
null
?
new
DBNEmptyNode
()
:
projectNode
.
getDatabases
();
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
浏览文件 @
8c75e6c8
...
...
@@ -287,7 +287,7 @@ public abstract class TargetPrefPage extends AbstractPrefPage implements IWorkbe
null
);
}
else
if
(
supportsDataSourceSpecificOptions
())
{
// Select datasource
DBPDataSourceContainer
dataSource
=
SelectDataSourceDialog
.
selectDataSource
(
getShell
());
DBPDataSourceContainer
dataSource
=
SelectDataSourceDialog
.
selectDataSource
(
getShell
()
,
null
);
if
(
dataSource
!=
null
)
{
DBNNode
dsNode
=
DBeaverCore
.
getInstance
().
getNavigatorModel
().
getNodeByObject
(
dataSource
);
if
(
dsNode
instanceof
DBNDataSource
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录