Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一剑流云
dbeaver
提交
ab9728b1
D
dbeaver
项目概览
一剑流云
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
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,发现更多精彩内容 >>
提交
ab9728b1
编写于
2月 17, 2021
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dbeaver/dbeaver-ee#808 Connection type and navigator settings defaults + pref page
上级
40fb30e4
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
350 addition
and
131 deletion
+350
-131
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageDriver.java
...s/dbeaver/ui/dialogs/connection/ConnectionPageDriver.java
+1
-48
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
.../dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
+80
-74
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionTypeLabelProvider.java
...er/ui/dialogs/connection/ConnectionTypeLabelProvider.java
+40
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
...s/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NavigatorSettingsStorage.java
...eaver/ui/dialogs/connection/NavigatorSettingsStorage.java
+9
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionClient.java
...kiss/dbeaver/ui/preferences/PrefPageConnectionClient.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionsGeneral.java
...ss/dbeaver/ui/preferences/PrefPageConnectionsGeneral.java
+130
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPConnectionType.java
...org/jkiss/dbeaver/model/connection/DBPConnectionType.java
+18
-0
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+1
-1
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceNavigatorSettings.java
...g/jkiss/dbeaver/registry/DataSourceNavigatorSettings.java
+63
-0
plugins/org.jkiss.dbeaver.ui.app.eclipse/plugin.xml
plugins/org.jkiss.dbeaver.ui.app.eclipse/plugin.xml
+2
-2
plugins/org.jkiss.dbeaver.ui.app.standalone/plugin.xml
plugins/org.jkiss.dbeaver.ui.app.standalone/plugin.xml
+2
-2
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
ab9728b1
...
...
@@ -931,7 +931,7 @@
<page
id=
"org.jkiss.dbeaver.preferences.main.errorHandle"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageErrorHandle"
name=
"%page.org.jkiss.dbeaver.preferences.main.errorHandle.name"
>
<enabledWhen><reference
definitionId=
"org.jkiss.dbeaver.core.preferences.datasource"
/></enabledWhen>
</page>
<page
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
s
"
name=
"%page.org.jkiss.dbeaver.preferences.main.connections.name"
>
<page
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
Client
"
name=
"%page.org.jkiss.dbeaver.preferences.main.connections.name"
>
<enabledWhen>
<or>
<instanceof
value=
"org.jkiss.dbeaver.model.navigator.DBNDataSource"
/>
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageDriver.java
浏览文件 @
ab9728b1
...
...
@@ -28,7 +28,6 @@ import org.eclipse.swt.widgets.Composite;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Label
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverActivator
;
import
org.jkiss.dbeaver.model.app.DBPProject
;
import
org.jkiss.dbeaver.model.connection.DBPDriver
;
import
org.jkiss.dbeaver.model.navigator.DBNBrowseSettings
;
...
...
@@ -43,7 +42,6 @@ import org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage;
import
org.jkiss.dbeaver.ui.dialogs.driver.DriverSelectViewer
;
import
org.jkiss.dbeaver.ui.dialogs.driver.DriverTreeViewer
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.utils.CommonUtils
;
/**
* Driver selection page
...
...
@@ -51,11 +49,8 @@ import org.jkiss.utils.CommonUtils;
*/
class
ConnectionPageDriver
extends
ActiveWizardPage
implements
ISelectionChangedListener
,
IDoubleClickListener
{
private
static
final
String
DEFAULT_NAVIGATOR_SETTINGS_RESET
=
"navigator.settings.preset.default"
;
private
NewConnectionWizard
wizard
;
private
DBPDriver
selectedDriver
;
private
DataSourceNavigatorSettings
.
Preset
navigatorPreset
;
private
DriverSelectViewer
driverSelectViewer
;
private
ProjectSelectorPanel
projectSelector
;
private
Control
filterIndentLabel
;
...
...
@@ -66,21 +61,6 @@ class ConnectionPageDriver extends ActiveWizardPage implements ISelectionChanged
this
.
wizard
=
wizard
;
setTitle
(
CoreMessages
.
dialog_new_connection_wizard_start_title
);
setDescription
(
CoreMessages
.
dialog_new_connection_wizard_start_description
);
String
defPreset
=
DBeaverActivator
.
getInstance
().
getPreferences
().
getString
(
DEFAULT_NAVIGATOR_SETTINGS_RESET
);
if
(
CommonUtils
.
isEmpty
(
defPreset
))
{
defPreset
=
DataSourceNavigatorSettings
.
PRESET_FULL
.
getId
();
}
for
(
DataSourceNavigatorSettings
.
Preset
p
:
DataSourceNavigatorSettings
.
PRESETS
.
values
())
{
if
(
p
.
getId
().
equals
(
defPreset
))
{
navigatorPreset
=
p
;
break
;
}
}
if
(
navigatorPreset
==
null
)
{
navigatorPreset
=
DataSourceNavigatorSettings
.
PRESET_FULL
;
}
}
@Override
...
...
@@ -93,33 +73,6 @@ class ConnectionPageDriver extends ActiveWizardPage implements ISelectionChanged
Composite
controlsGroup
=
UIUtils
.
createComposite
(
placeholder
,
4
);
controlsGroup
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_HORIZONTAL
));
// Navigator view preset
if
(
false
)
{
Composite
presetComposite
=
new
Composite
(
controlsGroup
,
SWT
.
NONE
);
presetComposite
.
setLayout
(
new
RowLayout
());
new
Label
(
presetComposite
,
SWT
.
NONE
).
setImage
(
DBeaverIcons
.
getImage
(
UIIcon
.
CONFIGURATION
));
new
Label
(
presetComposite
,
SWT
.
NONE
).
setText
(
"Connection view: "
);
for
(
DataSourceNavigatorSettings
.
Preset
p
:
DataSourceNavigatorSettings
.
PRESETS
.
values
())
{
if
(
p
!=
DataSourceNavigatorSettings
.
PRESET_CUSTOM
)
{
Button
pButton
=
new
Button
(
presetComposite
,
SWT
.
RADIO
);
pButton
.
setText
(
p
.
getName
());
pButton
.
setToolTipText
(
p
.
getDescription
());
if
(
p
==
navigatorPreset
)
{
pButton
.
setSelection
(
true
);
}
pButton
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
if
(
pButton
.
getSelection
())
{
navigatorPreset
=
p
;
DBeaverActivator
.
getInstance
().
getPreferences
().
setValue
(
DEFAULT_NAVIGATOR_SETTINGS_RESET
,
navigatorPreset
.
getId
());
}
}
});
}
}
}
{
driverSelectViewer
=
new
DriverSelectViewer
(
placeholder
,
this
,
wizard
.
getAvailableProvides
(),
true
,
DriverSelectViewer
.
SelectorViewType
.
browser
)
{
@Override
...
...
@@ -214,7 +167,7 @@ class ConnectionPageDriver extends ActiveWizardPage implements ISelectionChanged
}
public
DBNBrowseSettings
getNavigatorSettings
()
{
return
navigatorPreset
.
ge
tSettings
();
return
DataSourceNavigatorSettings
.
getDefaul
tSettings
();
}
@Override
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java
浏览文件 @
ab9728b1
...
...
@@ -17,15 +17,13 @@
package
org.jkiss.dbeaver.ui.dialogs.connection
;
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.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.graphics.Color
;
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.core.CoreMessages
;
...
...
@@ -59,10 +57,20 @@ import java.util.StringTokenizer;
/**
* General connection page (common for all connection types)
*/
class
ConnectionPageGeneral
extends
ConnectionWizardP
age
{
public
class
ConnectionPageGeneral
extends
ConnectionWizardPage
implements
NavigatorSettingsStor
age
{
static
final
String
PAGE_NAME
=
ConnectionPageGeneral
.
class
.
getSimpleName
();
@Override
public
DBNBrowseSettings
getNavigatorSettings
()
{
return
navigatorSettings
;
}
@Override
public
void
setNavigatorSettings
(
DBNBrowseSettings
settings
)
{
this
.
navigatorSettings
=
settings
;
}
private
static
class
FilterInfo
{
final
Class
<?>
type
;
final
String
title
;
...
...
@@ -155,7 +163,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
// Get settings from data source descriptor
final
DBPConnectionConfiguration
conConfig
=
dataSourceDescriptor
.
getConnectionConfiguration
();
connectionTypeCombo
.
select
(
conConfig
.
getConnectionType
());
updateNavigatorSettingsPreset
();
updateNavigatorSettingsPreset
(
navigatorSettingsCombo
,
dataSourceDescriptor
.
getNavigatorSettings
()
);
folderSelector
.
setFolder
(
dataSourceDescriptor
.
getFolder
());
...
...
@@ -169,7 +177,8 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
}
}
else
{
// Default settings
connectionTypeCombo
.
select
(
0
);
connectionTypeCombo
.
select
(
DBPConnectionType
.
getDefaultConnectionType
());
updateNavigatorSettingsPreset
(
navigatorSettingsCombo
,
getNavigatorSettings
());
folderSelector
.
setFolder
(
curDataSourceFolder
);
readOnlyConnection
.
setSelection
(
false
);
...
...
@@ -189,7 +198,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
filtersGroup
.
layout
();
}
p
rivate
void
updateNavigatorSettingsPreset
(
)
{
p
ublic
static
void
updateNavigatorSettingsPreset
(
Combo
navigatorSettingsCombo
,
DBNBrowseSettings
navigatorSettings
)
{
// Find first preset that matches current connection settings
boolean
isPreset
=
false
;
for
(
DataSourceNavigatorSettings
.
Preset
nsEntry
:
DataSourceNavigatorSettings
.
PRESETS
.
values
())
{
...
...
@@ -288,12 +297,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
});
{
UIUtils
.
createControlLabel
(
miscGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_connection_type
);
Composite
ctGroup
=
UIUtils
.
createComposite
(
miscGroup
,
2
);
connectionTypeCombo
=
new
CSmartCombo
<>(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
,
new
ConnectionTypeLabelProvider
());
loadConnectionTypes
();
connectionTypeCombo
.
select
(
0
);
connectionTypeCombo
=
createConnectionTypeCombo
(
miscGroup
);
connectionTypeCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
...
...
@@ -301,20 +305,19 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
getWizard
().
firePropertyChangeEvent
(
ConnectionWizard
.
PROP_CONNECTION_TYPE
,
getActiveDataSource
().
getConnectionConfiguration
().
getConnectionType
(),
type
);
}
});
final
GridData
gd
=
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_BEGINNING
);
gd
.
widthHint
=
UIUtils
.
getFontHeight
(
connectionTypeCombo
)
*
20
;
connectionTypeCombo
.
setLayoutData
(
gd
);
Composite
ctGroup
=
connectionTypeCombo
.
getParent
();
((
GridLayout
)
ctGroup
.
getLayout
()).
numColumns
++;
UIUtils
.
createDialogButton
(
ctGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_connection_types_edit
,
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
DBPConnectionType
curConType
=
connectionTypeCombo
.
getSelectedItem
();
DataSourceDescriptor
dataSource
=
getActiveDataSource
();
UIUtils
.
showPreferencesFor
(
getControl
()
.
getShell
(),
ctGroup
.
getShell
(),
dataSource
.
getConnectionConfiguration
().
getConnectionType
(),
PrefPageConnectionTypes
.
PAGE_ID
);
loadConnectionTypes
();
loadConnectionTypes
(
connectionTypeCombo
);
if
(!
connectionTypeCombo
.
getItems
().
contains
(
curConType
))
{
curConType
=
connectionTypeCombo
.
getItems
().
get
(
0
);
}
...
...
@@ -325,38 +328,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
}
{
UIUtils
.
createControlLabel
(
miscGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_navigator_settings
);
Composite
ctGroup
=
UIUtils
.
createComposite
(
miscGroup
,
2
);
navigatorSettingsCombo
=
new
Combo
(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
final
GridData
gd
=
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_BEGINNING
);
gd
.
widthHint
=
UIUtils
.
getFontHeight
(
navigatorSettingsCombo
)
*
20
;
navigatorSettingsCombo
.
setLayoutData
(
gd
);
for
(
String
ncPresetName
:
DataSourceNavigatorSettings
.
PRESETS
.
keySet
())
{
navigatorSettingsCombo
.
add
(
ncPresetName
);
}
navigatorSettingsCombo
.
select
(
0
);
navigatorSettingsCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
if
(
navigatorSettingsCombo
.
getSelectionIndex
()
==
navigatorSettingsCombo
.
getItemCount
()
-
1
)
{
// Custom - no changes
}
else
{
DataSourceNavigatorSettings
.
Preset
newSettings
=
DataSourceNavigatorSettings
.
PRESETS
.
get
(
navigatorSettingsCombo
.
getText
());
if
(
newSettings
==
null
)
{
throw
new
IllegalStateException
(
"Invalid preset name: "
+
navigatorSettingsCombo
.
getText
());
}
ConnectionPageGeneral
.
this
.
navigatorSettings
=
newSettings
.
getSettings
();
}
}
});
UIUtils
.
createDialogButton
(
ctGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_navigator_settings_customize
,
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
editNavigatorSettings
();
}
});
navigatorSettingsCombo
=
createNavigatorSettingsCombo
(
miscGroup
,
this
);
}
folderSelector
=
new
ConnectionFolderSelector
(
miscGroup
);
...
...
@@ -476,12 +448,64 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
UIUtils
.
setHelp
(
group
,
IHelpContextIds
.
CTX_CON_WIZARD_FINAL
);
}
private
void
editNavigatorSettings
()
{
EditConnectionNavigatorSettingsDialog
dialog
=
new
EditConnectionNavigatorSettingsDialog
(
getShell
(),
this
.
navigatorSettings
);
public
static
Combo
createNavigatorSettingsCombo
(
Composite
composite
,
NavigatorSettingsStorage
settingsStorage
)
{
UIUtils
.
createControlLabel
(
composite
,
CoreMessages
.
dialog_connection_wizard_final_label_navigator_settings
);
Composite
ctGroup
=
UIUtils
.
createComposite
(
composite
,
2
);
Combo
navigatorSettingsCombo
=
new
Combo
(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
final
GridData
gd
=
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_BEGINNING
);
gd
.
widthHint
=
UIUtils
.
getFontHeight
(
navigatorSettingsCombo
)
*
20
;
navigatorSettingsCombo
.
setLayoutData
(
gd
);
for
(
String
ncPresetName
:
DataSourceNavigatorSettings
.
PRESETS
.
keySet
())
{
navigatorSettingsCombo
.
add
(
ncPresetName
);
}
navigatorSettingsCombo
.
select
(
0
);
navigatorSettingsCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
if
(
navigatorSettingsCombo
.
getSelectionIndex
()
==
navigatorSettingsCombo
.
getItemCount
()
-
1
)
{
// Custom - no changes
}
else
{
DataSourceNavigatorSettings
.
Preset
newSettings
=
DataSourceNavigatorSettings
.
PRESETS
.
get
(
navigatorSettingsCombo
.
getText
());
if
(
newSettings
==
null
)
{
throw
new
IllegalStateException
(
"Invalid preset name: "
+
navigatorSettingsCombo
.
getText
());
}
settingsStorage
.
setNavigatorSettings
(
newSettings
.
getSettings
());
}
}
});
UIUtils
.
createDialogButton
(
ctGroup
,
CoreMessages
.
dialog_connection_wizard_final_label_navigator_settings_customize
,
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
settingsStorage
.
setNavigatorSettings
(
editNavigatorSettings
(
navigatorSettingsCombo
,
settingsStorage
.
getNavigatorSettings
()));
}
});
return
navigatorSettingsCombo
;
}
public
static
CSmartCombo
<
DBPConnectionType
>
createConnectionTypeCombo
(
Composite
composite
)
{
UIUtils
.
createControlLabel
(
composite
,
CoreMessages
.
dialog_connection_wizard_final_label_connection_type
);
Composite
ctGroup
=
UIUtils
.
createComposite
(
composite
,
1
);
CSmartCombo
<
DBPConnectionType
>
connectionTypeCombo
=
new
CSmartCombo
<>(
ctGroup
,
SWT
.
BORDER
|
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
,
new
ConnectionTypeLabelProvider
());
loadConnectionTypes
(
connectionTypeCombo
);
connectionTypeCombo
.
select
(
DBPConnectionType
.
getDefaultConnectionType
());
final
GridData
gd
=
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_BEGINNING
);
gd
.
widthHint
=
UIUtils
.
getFontHeight
(
connectionTypeCombo
)
*
20
;
connectionTypeCombo
.
setLayoutData
(
gd
);
return
connectionTypeCombo
;
}
private
static
DBNBrowseSettings
editNavigatorSettings
(
Combo
navigatorSettingsCombo
,
DBNBrowseSettings
navigatorSettings
)
{
EditConnectionNavigatorSettingsDialog
dialog
=
new
EditConnectionNavigatorSettingsDialog
(
navigatorSettingsCombo
.
getShell
(),
navigatorSettings
);
if
(
dialog
.
open
()
==
IDialogConstants
.
OK_ID
)
{
this
.
navigatorSettings
=
dialog
.
getNavigatorSettings
();
updateNavigatorSettingsPreset
();
navigatorSettings
=
dialog
.
getNavigatorSettings
();
updateNavigatorSettingsPreset
(
navigatorSettingsCombo
,
navigatorSettings
);
}
return
navigatorSettings
;
}
private
void
editPermissions
()
{
...
...
@@ -491,8 +515,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
}
}
private
void
loadConnectionTypes
()
{
public
static
void
loadConnectionTypes
(
CSmartCombo
<
DBPConnectionType
>
connectionTypeCombo
)
{
connectionTypeCombo
.
removeAll
();
for
(
DBPConnectionType
ct
:
DataSourceProviderRegistry
.
getInstance
().
getConnectionTypes
())
{
connectionTypeCombo
.
addItem
(
ct
);
...
...
@@ -521,7 +544,7 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
dataSource
.
setFolder
(
folderSelector
.
getFolder
());
if
(
connectionTypeCombo
.
getSelectionIndex
()
>=
0
)
{
confConfig
.
setConnectionType
(
connectionTypeCombo
.
get
Item
(
connectionTypeCombo
.
getSelectionIndex
()
));
confConfig
.
setConnectionType
(
connectionTypeCombo
.
get
SelectedItem
(
));
}
DataSourceDescriptor
dsDescriptor
=
(
DataSourceDescriptor
)
dataSource
;
...
...
@@ -551,21 +574,4 @@ class ConnectionPageGeneral extends ConnectionWizardPage {
this
.
curDataSourceFolder
=
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
);
}
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionTypeLabelProvider.java
0 → 100644
浏览文件 @
ab9728b1
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2021 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.dialogs.connection
;
import
org.eclipse.jface.viewers.IColorProvider
;
import
org.eclipse.jface.viewers.LabelProvider
;
import
org.eclipse.swt.graphics.Color
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionType
;
import
org.jkiss.dbeaver.ui.UIUtils
;
public
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
);
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
浏览文件 @
ab9728b1
...
...
@@ -152,7 +152,7 @@ public class EditConnectionWizard extends ConnectionWizard
}
if
(!
embedded
&&
pageSettings
!=
null
)
{
PrefPageConnection
s
pageClientSettings
=
new
PrefPageConnections
();
PrefPageConnection
Client
pageClientSettings
=
new
PrefPageConnectionClient
();
pageSettings
.
addSubPage
(
createPreferencePage
(
pageClientSettings
,
CoreMessages
.
dialog_connection_edit_wizard_connections
,
CoreMessages
.
dialog_connection_edit_wizard_connections_description
));
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NavigatorSettingsStorage.java
0 → 100644
浏览文件 @
ab9728b1
package
org.jkiss.dbeaver.ui.dialogs.connection
;
import
org.jkiss.dbeaver.model.navigator.DBNBrowseSettings
;
public
interface
NavigatorSettingsStorage
{
DBNBrowseSettings
getNavigatorSettings
();
void
setNavigatorSettings
(
DBNBrowseSettings
settings
);
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnection
s
.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnection
Client
.java
浏览文件 @
ab9728b1
...
...
@@ -37,7 +37,7 @@ import org.jkiss.dbeaver.utils.SystemVariablesResolver;
/**
* PrefPageConnections
*/
public
class
PrefPageConnection
s
extends
TargetPrefPage
public
class
PrefPageConnection
Client
extends
TargetPrefPage
{
public
static
final
String
PAGE_ID
=
"org.jkiss.dbeaver.preferences.client.connections"
;
//$NON-NLS-1$
...
...
@@ -69,7 +69,7 @@ public class PrefPageConnections extends TargetPrefPage
private
Button
connUseEnvVariables
;
public
PrefPageConnection
s
()
public
PrefPageConnection
Client
()
{
super
();
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPage
GeneralConnections
.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPage
ConnectionsGeneral
.java
浏览文件 @
ab9728b1
...
...
@@ -2,46 +2,72 @@ package org.jkiss.dbeaver.ui.preferences;
import
org.eclipse.core.runtime.IAdaptable
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Group
;
import
org.eclipse.swt.widgets.Label
;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.IWorkbench
;
import
org.eclipse.ui.IWorkbenchPreferencePage
;
import
org.eclipse.ui.IWorkbenchPropertyPage
;
import
org.eclipse.ui.dialogs.PreferenceLinkArea
;
import
org.eclipse.ui.preferences.IWorkbenchPreferenceContainer
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.model.connection.DBPConnectionType
;
import
org.jkiss.dbeaver.model.navigator.DBNBrowseSettings
;
import
org.jkiss.dbeaver.registry.DataSourceNavigatorSettings
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.controls.CSmartCombo
;
import
org.jkiss.dbeaver.ui.dialogs.connection.ConnectionPageGeneral
;
import
org.jkiss.dbeaver.ui.dialogs.connection.NavigatorSettingsStorage
;
public
class
PrefPage
GeneralConnections
extends
AbstractPrefPage
implements
IWorkbenchPreferencePage
,
IWorkbenchPropertyP
age
{
public
class
PrefPage
ConnectionsGeneral
extends
AbstractPrefPage
implements
IWorkbenchPreferencePage
,
IWorkbenchPropertyPage
,
NavigatorSettingsStor
age
{
public
static
final
String
PAGE_ID
=
"org.jkiss.dbeaver.preferences.main.connections"
;
public
PrefPageGeneralConnections
()
{
private
CSmartCombo
<
DBPConnectionType
>
connectionTypeCombo
;
private
Combo
navigatorSettingsCombo
;
private
DBPConnectionType
defaultConnectionType
;
private
DBNBrowseSettings
defaultNavigatorSettings
;
public
PrefPageConnectionsGeneral
()
{
super
();
setPreferenceStore
(
new
PreferenceStoreDelegate
(
DBWorkbench
.
getPlatform
().
getPreferenceStore
()));
defaultNavigatorSettings
=
DataSourceNavigatorSettings
.
PRESET_FULL
.
getSettings
();
}
@Override
protected
Control
createContents
(
Composite
parent
)
{
Composite
composite
=
UIUtils
.
createPlaceholder
(
parent
,
1
,
5
);
Group
groupObjects
=
UIUtils
.
createControlGroup
(
composite
,
CoreMessages
.
pref_page_eclipse_ui_general_group_general
,
1
,
GridData
.
VERTICAL_ALIGN_BEGINNING
,
0
);
Label
descLabel
=
new
Label
(
groupObjects
,
SWT
.
WRAP
);
descLabel
.
setText
(
CoreMessages
.
pref_page_eclipse_ui_general_connections_group_label
);
{
Group
groupDefaults
=
UIUtils
.
createControlGroup
(
composite
,
"Default settings for new connections"
,
2
,
GridData
.
VERTICAL_ALIGN_BEGINNING
,
0
);
performDefaults
();
connectionTypeCombo
=
ConnectionPageGeneral
.
createConnectionTypeCombo
(
groupDefaults
);
connectionTypeCombo
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
defaultConnectionType
=
connectionTypeCombo
.
getSelectedItem
();
}
});
navigatorSettingsCombo
=
ConnectionPageGeneral
.
createNavigatorSettingsCombo
(
groupDefaults
,
this
);
}
{
Group
groupObjects
=
UIUtils
.
createControlGroup
(
composite
,
CoreMessages
.
pref_page_eclipse_ui_general_group_general
,
1
,
GridData
.
VERTICAL_ALIGN_BEGINNING
,
0
);
Label
descLabel
=
new
Label
(
groupObjects
,
SWT
.
WRAP
);
descLabel
.
setText
(
CoreMessages
.
pref_page_eclipse_ui_general_connections_group_label
);
// Link to secure storage config
addLinkToSettings
(
composite
,
PrefPageDrivers
.
PAGE_ID
);
addLinkToSettings
(
composite
,
PrefPageErrorHandle
.
PAGE_ID
);
addLinkToSettings
(
composite
,
PrefPageMetaData
.
PAGE_ID
);
addLinkToSettings
(
composite
,
PrefPageTransactions
.
PAGE_ID
);
addLinkToSettings
(
groupObjects
,
PrefPageDrivers
.
PAGE_ID
);
addLinkToSettings
(
groupObjects
,
PrefPageErrorHandle
.
PAGE_ID
);
addLinkToSettings
(
groupObjects
,
PrefPageMetaData
.
PAGE_ID
);
addLinkToSettings
(
groupObjects
,
PrefPageTransactions
.
PAGE_ID
);
}
performDefaults
();
return
composite
;
}
...
...
@@ -66,4 +92,39 @@ public class PrefPageGeneralConnections extends AbstractPrefPage implements IWor
"<a>''{0}''</a> "
+
CoreMessages
.
pref_page_ui_general_label_settings
,
(
IWorkbenchPreferenceContainer
)
getContainer
(),
null
);
//$NON-NLS-1$
}
@Override
public
DBNBrowseSettings
getNavigatorSettings
()
{
return
defaultNavigatorSettings
;
}
@Override
public
void
setNavigatorSettings
(
DBNBrowseSettings
settings
)
{
this
.
defaultNavigatorSettings
=
settings
;
}
@Override
protected
void
performDefaults
()
{
defaultConnectionType
=
DBPConnectionType
.
getDefaultConnectionType
();
connectionTypeCombo
.
select
(
defaultConnectionType
);
defaultNavigatorSettings
=
DataSourceNavigatorSettings
.
getDefaultSettings
();
ConnectionPageGeneral
.
updateNavigatorSettingsPreset
(
navigatorSettingsCombo
,
defaultNavigatorSettings
);
super
.
performDefaults
();
}
@Override
public
boolean
performOk
()
{
if
(
defaultConnectionType
!=
DBPConnectionType
.
getDefaultConnectionType
())
{
DBPConnectionType
.
setDefaultConnectionType
(
defaultConnectionType
);
}
if
(!
defaultNavigatorSettings
.
equals
(
DataSourceNavigatorSettings
.
getDefaultSettings
()))
{
DataSourceNavigatorSettings
.
setDefaultSettings
(
defaultNavigatorSettings
);
}
return
super
.
performOk
();
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPConnectionType.java
浏览文件 @
ab9728b1
package
org.jkiss.dbeaver.model.connection
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.ModelPreferences
;
import
org.jkiss.dbeaver.model.DBPDataSourcePermission
;
import
org.jkiss.dbeaver.model.DBPDataSourcePermissionOwner
;
import
org.jkiss.dbeaver.model.messages.ModelMessages
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.ArrayList
;
...
...
@@ -202,4 +204,20 @@ public class DBPConnectionType implements DBPDataSourcePermissionOwner {
public
int
hashCode
()
{
return
id
.
hashCode
();
}
private
static
final
String
DEFAULT_CONNECTION_TYPE_PREF
=
"default.connection.type"
;
public
static
DBPConnectionType
getDefaultConnectionType
()
{
String
defTypeName
=
ModelPreferences
.
getPreferences
().
getString
(
DEFAULT_CONNECTION_TYPE_PREF
);
if
(
CommonUtils
.
isEmpty
(
defTypeName
))
{
defTypeName
=
DEV
.
getName
();
}
return
DBWorkbench
.
getPlatform
().
getDataSourceProviderRegistry
().
getConnectionType
(
defTypeName
,
DEV
);
}
public
static
void
setDefaultConnectionType
(
DBPConnectionType
connectionType
)
{
ModelPreferences
.
getPreferences
().
setValue
(
DEFAULT_CONNECTION_TYPE_PREF
,
connectionType
.
getId
());
}
}
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
ab9728b1
...
...
@@ -186,7 +186,7 @@ public class DataSourceDescriptor
this
.
connectionInfo
=
connectionInfo
;
this
.
preferenceStore
=
new
DataSourcePreferenceStore
(
this
);
this
.
virtualModel
=
new
DBVModel
(
this
);
this
.
navigatorSettings
=
new
DataSourceNavigatorSettings
(
DataSourceNavigatorSettings
.
PRESET_FULL
.
ge
tSettings
());
this
.
navigatorSettings
=
new
DataSourceNavigatorSettings
(
DataSourceNavigatorSettings
.
getDefaul
tSettings
());
}
// Copy constructor
...
...
plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/DataSourceNavigatorSettings.java
浏览文件 @
ab9728b1
...
...
@@ -16,7 +16,10 @@
*/
package
org.jkiss.dbeaver.registry
;
import
org.jkiss.dbeaver.ModelPreferences
;
import
org.jkiss.dbeaver.model.navigator.DBNBrowseSettings
;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
...
...
@@ -172,4 +175,64 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
this
.
hideVirtualModel
==
source
.
hideVirtualModel
;
}
public
static
final
String
DEFAULT_NAVIGATOR_SETTINGS_PRESET
=
"navigator.settings.default.preset"
;
private
static
final
String
DEFAULT_SHOW_SYSTEM_OBJECTS
=
"navigator.settings.default.showSystemObjects"
;
private
static
final
String
DEFAULT_SHOW_UTILITY_OBJECTS
=
"navigator.settings.default.showUtilityObjects"
;
private
static
final
String
DEFAULT_SHOW_ONLY_ENTITIES
=
"navigator.settings.default.showOnlyEntities"
;
private
static
final
String
DEFAULT_MERGE_ENTITIES
=
"navigator.settings.default.mergeEntities"
;
private
static
final
String
DEFAULT_HIDE_FOLDERS
=
"navigator.settings.default.hideFolders"
;
private
static
final
String
DEFAULT_HIDE_SCHEMAS
=
"navigator.settings.default.hideSchemas"
;
private
static
final
String
DEFAULT_HIDE_VIRTUAL_MODEL
=
"navigator.settings.default.hideVirtualModel"
;
public
static
DBNBrowseSettings
getDefaultSettings
()
{
DBPPreferenceStore
preferences
=
ModelPreferences
.
getPreferences
();
String
defPreset
=
preferences
.
getString
(
DEFAULT_NAVIGATOR_SETTINGS_PRESET
);
if
(!
CommonUtils
.
isEmpty
(
defPreset
))
{
for
(
DataSourceNavigatorSettings
.
Preset
p
:
DataSourceNavigatorSettings
.
PRESETS
.
values
())
{
if
(
p
.
getId
().
equals
(
defPreset
))
{
return
p
.
getSettings
();
}
}
}
// Custom settings
DataSourceNavigatorSettings
settings
=
new
DataSourceNavigatorSettings
();
settings
.
setShowSystemObjects
(
preferences
.
getBoolean
(
DEFAULT_SHOW_SYSTEM_OBJECTS
));
settings
.
setShowUtilityObjects
(
preferences
.
getBoolean
(
DEFAULT_SHOW_UTILITY_OBJECTS
));
settings
.
setShowOnlyEntities
(
preferences
.
getBoolean
(
DEFAULT_SHOW_ONLY_ENTITIES
));
settings
.
setMergeEntities
(
preferences
.
getBoolean
(
DEFAULT_MERGE_ENTITIES
));
settings
.
setHideFolders
(
preferences
.
getBoolean
(
DEFAULT_HIDE_FOLDERS
));
settings
.
setHideSchemas
(
preferences
.
getBoolean
(
DEFAULT_HIDE_SCHEMAS
));
settings
.
setHideVirtualModel
(
preferences
.
getBoolean
(
DEFAULT_HIDE_VIRTUAL_MODEL
));
return
settings
;
}
public
static
void
setDefaultSettings
(
DBNBrowseSettings
settings
)
{
// Save preset
DBPPreferenceStore
preferences
=
ModelPreferences
.
getPreferences
();
String
presetId
=
null
;
for
(
DataSourceNavigatorSettings
.
Preset
p
:
DataSourceNavigatorSettings
.
PRESETS
.
values
())
{
if
(
p
.
getSettings
().
equals
(
settings
))
{
presetId
=
p
.
getId
();
break
;
}
}
if
(
CommonUtils
.
isEmptyTrimmed
(
presetId
))
{
preferences
.
setValue
(
DEFAULT_NAVIGATOR_SETTINGS_PRESET
,
""
);
}
else
{
preferences
.
setValue
(
DEFAULT_NAVIGATOR_SETTINGS_PRESET
,
presetId
);
}
// Save custom settings
preferences
.
setValue
(
DEFAULT_SHOW_SYSTEM_OBJECTS
,
settings
.
isShowSystemObjects
());
preferences
.
setValue
(
DEFAULT_SHOW_UTILITY_OBJECTS
,
settings
.
isShowUtilityObjects
());
preferences
.
setValue
(
DEFAULT_SHOW_ONLY_ENTITIES
,
settings
.
isShowOnlyEntities
());
preferences
.
setValue
(
DEFAULT_MERGE_ENTITIES
,
settings
.
isMergeEntities
());
preferences
.
setValue
(
DEFAULT_HIDE_FOLDERS
,
settings
.
isHideFolders
());
preferences
.
setValue
(
DEFAULT_HIDE_SCHEMAS
,
settings
.
isHideSchemas
());
preferences
.
setValue
(
DEFAULT_HIDE_VIRTUAL_MODEL
,
settings
.
isHideVirtualModel
());
}
}
plugins/org.jkiss.dbeaver.ui.app.eclipse/plugin.xml
浏览文件 @
ab9728b1
...
...
@@ -78,12 +78,12 @@
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.pref.db.dataformat"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.dbeaver"
/>
</page>
<page
category=
"org.jkiss.dbeaver.preferences.eclipse.main"
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPage
GeneralConnections
"
name=
"%pref.page.name.connections"
>
<page
category=
"org.jkiss.dbeaver.preferences.eclipse.main"
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPage
ConnectionsGeneral
"
name=
"%pref.page.name.connections"
>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.connection"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.database.connection"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.dbeaver"
/>
</page>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.client.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
s
"
name=
"%pref.page.name.client.connections"
>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.client.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
Client
"
name=
"%pref.page.name.client.connections"
>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.connection"
/>
</page>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.main.transactions"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageTransactions"
name=
"%pref.page.name.transactions"
>
...
...
plugins/org.jkiss.dbeaver.ui.app.standalone/plugin.xml
浏览文件 @
ab9728b1
...
...
@@ -313,12 +313,12 @@
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.pref.db.dataformat"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.dbeaver"
/>
</page>
<page
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPage
GeneralConnections
"
name=
"%pref.page.name.connections"
>
<page
id=
"org.jkiss.dbeaver.preferences.main.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPage
ConnectionsGeneral
"
name=
"%pref.page.name.connections"
>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.connection"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.database.connection"
/>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.dbeaver"
/>
</page>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.client.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
s
"
name=
"%pref.page.name.client.connections"
>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.client.connections"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageConnection
Client
"
name=
"%pref.page.name.client.connections"
>
<keywordReference
id=
"org.jkiss.dbeaver.core.keyword.connection"
/>
</page>
<page
category=
"org.jkiss.dbeaver.preferences.main.connections"
id=
"org.jkiss.dbeaver.preferences.main.transactions"
class=
"org.jkiss.dbeaver.ui.preferences.PrefPageTransactions"
name=
"%pref.page.name.transactions"
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录