diff --git a/plugins/org.jkiss.dbeaver.core.application/plugin.properties b/plugins/org.jkiss.dbeaver.core.application/plugin.properties
index f7b6213e8a9e3e14b822164ae827e5fbb647e224..3c3b7fdea2612c4369fb20defd8fb19d42a7d3c8 100644
--- a/plugins/org.jkiss.dbeaver.core.application/plugin.properties
+++ b/plugins/org.jkiss.dbeaver.core.application/plugin.properties
@@ -51,3 +51,4 @@ pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata
+pref.page.name.connections=Connections
diff --git a/plugins/org.jkiss.dbeaver.core.application/plugin.xml b/plugins/org.jkiss.dbeaver.core.application/plugin.xml
index 7b9f583817d6ef44f8d435ea16db76021ac58029..3f3adaa2e05d7bfa2f85c8d3e8f2a7f8b441740b 100644
--- a/plugins/org.jkiss.dbeaver.core.application/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.core.application/plugin.xml
@@ -212,6 +212,8 @@
+
+
diff --git a/plugins/org.jkiss.dbeaver.core.eclipse/plugin.properties b/plugins/org.jkiss.dbeaver.core.eclipse/plugin.properties
index 6539abe28769e8bd083cf263da1f955dd6c87897..8d2a254a117d3e5e436e1467ca3eeb1cd5c7e615 100644
--- a/plugins/org.jkiss.dbeaver.core.eclipse/plugin.properties
+++ b/plugins/org.jkiss.dbeaver.core.eclipse/plugin.properties
@@ -42,3 +42,4 @@ pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata
+pref.page.name.connections=Connections
diff --git a/plugins/org.jkiss.dbeaver.core.eclipse/plugin.xml b/plugins/org.jkiss.dbeaver.core.eclipse/plugin.xml
index 7180dbdb7d70f05c988668f0ea59b28b6e00b464..a8a6585d9db6aee4a86b78b6107e7ff8fe91a28c 100644
--- a/plugins/org.jkiss.dbeaver.core.eclipse/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.core.eclipse/plugin.xml
@@ -53,6 +53,8 @@
+
+
diff --git a/plugins/org.jkiss.dbeaver.core/plugin.xml b/plugins/org.jkiss.dbeaver.core/plugin.xml
index 234d430b0efef3b0aa99b81c9c772592fedc00fb..57e9fcfbb6ffd52b92ef0633730b2e8835743f1a 100644
--- a/plugins/org.jkiss.dbeaver.core/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.core/plugin.xml
@@ -2185,6 +2185,14 @@
+
+
+
+
+
+
+
+
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java
new file mode 100644
index 0000000000000000000000000000000000000000..1fd136732ecec0bbdb815143ac11443bd776be46
--- /dev/null
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java
@@ -0,0 +1,130 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ * Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+package org.jkiss.dbeaver.ui.preferences;
+
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.*;
+import org.jkiss.dbeaver.ModelPreferences;
+import org.jkiss.dbeaver.model.DBPDataSourceContainer;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
+import org.jkiss.dbeaver.ui.UIUtils;
+import org.jkiss.dbeaver.utils.PrefUtils;
+
+/**
+ * PrefPageConnections
+ */
+public class PrefPageConnections extends TargetPrefPage
+{
+ public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.main.connections"; //$NON-NLS-1$
+
+ private Button overrideClientApplicationNameCheck;
+ private Text clientApplicationNameText;
+
+ public PrefPageConnections()
+ {
+ super();
+ }
+
+ @Override
+ protected boolean hasDataSourceSpecificOptions(DBPDataSourceContainer dataSourceDescriptor)
+ {
+ DBPPreferenceStore store = dataSourceDescriptor.getPreferenceStore();
+ return
+ store.contains(ModelPreferences.META_CLIENT_NAME_OVERRIDE) ||
+ store.contains(ModelPreferences.META_CLIENT_NAME_VALUE)
+ ;
+ }
+
+ @Override
+ protected boolean supportsDataSourceSpecificOptions()
+ {
+ return true;
+ }
+
+ @Override
+ protected Control createPreferenceContent(Composite parent)
+ {
+ Composite composite = UIUtils.createPlaceholder(parent, 1, 5);
+ {
+ Group clientNameGroup = UIUtils.createControlGroup(composite, "Client Application Name", 2, GridData.FILL_HORIZONTAL, 0);
+
+ final Label label = UIUtils.createLabel(clientNameGroup,
+ "Client application name is passed to database server on connect to identify client connections.\n" +
+ "By default it is set to product name + product version. You can set it to any custom value.");
+ GridData gd = new GridData();
+ gd.horizontalSpan = 2;
+ label.setLayoutData(gd);
+ overrideClientApplicationNameCheck = UIUtils.createCheckbox(clientNameGroup, "Override client application name", null, false, 2);
+ overrideClientApplicationNameCheck.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateClientAppEnablement();
+ }
+ });
+ clientApplicationNameText = UIUtils.createLabelText(clientNameGroup, "Client Application Name", "");
+ }
+
+ return composite;
+ }
+
+ private void updateClientAppEnablement() {
+ clientApplicationNameText.setEnabled(overrideClientApplicationNameCheck.getSelection());
+ }
+
+ @Override
+ protected void loadPreferences(DBPPreferenceStore store)
+ {
+ try {
+ overrideClientApplicationNameCheck.setSelection(store.getBoolean(ModelPreferences.META_CLIENT_NAME_OVERRIDE));
+ clientApplicationNameText.setText(store.getString(ModelPreferences.META_CLIENT_NAME_VALUE));
+
+ updateClientAppEnablement();
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ }
+
+ @Override
+ protected void savePreferences(DBPPreferenceStore store)
+ {
+ try {
+ store.setValue(ModelPreferences.META_CLIENT_NAME_OVERRIDE, overrideClientApplicationNameCheck.getSelection());
+ store.setValue(ModelPreferences.META_CLIENT_NAME_VALUE, clientApplicationNameText.getText());
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ PrefUtils.savePreferenceStore(store);
+ }
+
+ @Override
+ protected void clearPreferences(DBPPreferenceStore store)
+ {
+ store.setToDefault(ModelPreferences.META_CLIENT_NAME_OVERRIDE);
+ store.setToDefault(ModelPreferences.META_CLIENT_NAME_VALUE);
+ }
+
+ @Override
+ protected String getPropertyPageID()
+ {
+ return PAGE_ID;
+ }
+
+}
\ No newline at end of file
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
index dfb2a781b0c59ecc8720be9506a36be129d10232..a7200ebc47ae301c9140a07fb95a1ba473005fd8 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
@@ -50,7 +50,6 @@ public class PrefPageDatabaseGeneral extends AbstractPrefPage implements IWorkbe
private Button keepEditorsOnRestart;
private Button refreshEditorOnOpen;
- private Button syncEditorDataSourceWithNavigator;
private Combo defaultResourceEncoding;
public PrefPageDatabaseGeneral()
@@ -100,10 +99,6 @@ public class PrefPageDatabaseGeneral extends AbstractPrefPage implements IWorkbe
refreshEditorOnOpen = UIUtils.createCheckbox(groupEditors, CoreMessages.pref_page_ui_general_refresh_editor_on_open, false);
refreshEditorOnOpen.setToolTipText("Refreshes object from database every time you open this object's editor.\nYou may need this option if your database structure changes frequently (e.g. by SQL scripts).");
-
- syncEditorDataSourceWithNavigator = UIUtils.createCheckbox(groupEditors, "Auto-sync editor connection with navigator selection", false);
- syncEditorDataSourceWithNavigator.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, true, false, 2, 1));
- syncEditorDataSourceWithNavigator.setToolTipText("Automatically sets editor (e.g. SQL editor) connection from selected navigator node.\nMakes sense if you need to change active connection/schema frequently.");
}
{
// Resources
@@ -131,7 +126,6 @@ public class PrefPageDatabaseGeneral extends AbstractPrefPage implements IWorkbe
keepEditorsOnRestart.setSelection(store.getBoolean(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS));
refreshEditorOnOpen.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_REFRESH_EDITORS_ON_OPEN));
- syncEditorDataSourceWithNavigator.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_SYNC_EDITOR_DATASOURCE));
defaultResourceEncoding.setText(store.getString(DBeaverPreferences.DEFAULT_RESOURCE_ENCODING));
}
@@ -147,7 +141,6 @@ public class PrefPageDatabaseGeneral extends AbstractPrefPage implements IWorkbe
store.setValue(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS, keepEditorsOnRestart.getSelection());
store.setValue(DBeaverPreferences.NAVIGATOR_REFRESH_EDITORS_ON_OPEN, refreshEditorOnOpen.getSelection());
- store.setValue(DBeaverPreferences.NAVIGATOR_SYNC_EDITOR_DATASOURCE, syncEditorDataSourceWithNavigator.getSelection());
store.setValue(DBeaverPreferences.DEFAULT_RESOURCE_ENCODING, defaultResourceEncoding.getText());
PrefUtils.savePreferenceStore(store);
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
index f0bf10434458c0da8eb0cbd576939abb72489951..9b82ce7e462bff1130e4ace27e8cee4e6bc1fdd5 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
@@ -47,6 +47,7 @@ public class PrefPageDatabaseNavigator extends AbstractPrefPage implements IWork
private Button sortFoldersFirstCheck;
private Button groupByDriverCheck;
private Button editorFullName;
+ private Button syncEditorDataSourceWithNavigator;
private Combo doubleClickBehavior;
public PrefPageDatabaseNavigator()
@@ -85,6 +86,10 @@ public class PrefPageDatabaseNavigator extends AbstractPrefPage implements IWork
editorFullName = UIUtils.createCheckbox(navigatorGroup, "Show full object names in editors", false);
editorFullName.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, true, false, 2, 1));
+ syncEditorDataSourceWithNavigator = UIUtils.createCheckbox(navigatorGroup, "Auto-sync editor connection with navigator selection", false);
+ syncEditorDataSourceWithNavigator.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, true, false, 2, 1));
+ syncEditorDataSourceWithNavigator.setToolTipText("Automatically sets editor (e.g. SQL editor) connection from selected navigator node.\nMakes sense if you need to change active connection/schema frequently.");
+
doubleClickBehavior = UIUtils.createLabelCombo(navigatorGroup, "Double-click on connection", SWT.DROP_DOWN | SWT.READ_ONLY);
doubleClickBehavior.add("Open Properties", NavigatorViewBase.DoubleClickBehavior.EDIT.ordinal());
doubleClickBehavior.add("Connect / Disconnect", NavigatorViewBase.DoubleClickBehavior.CONNECT.ordinal());
@@ -107,6 +112,7 @@ public class PrefPageDatabaseNavigator extends AbstractPrefPage implements IWork
sortFoldersFirstCheck.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_SORT_FOLDERS_FIRST));
groupByDriverCheck.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_GROUP_BY_DRIVER));
editorFullName.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_EDITOR_FULL_NAME));
+ syncEditorDataSourceWithNavigator.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_SYNC_EDITOR_DATASOURCE));
doubleClickBehavior.select(
NavigatorViewBase.DoubleClickBehavior.valueOf(store.getString(DBeaverPreferences.NAVIGATOR_CONNECTION_DOUBLE_CLICK)).ordinal());
}
@@ -121,6 +127,7 @@ public class PrefPageDatabaseNavigator extends AbstractPrefPage implements IWork
store.setValue(DBeaverPreferences.NAVIGATOR_SORT_FOLDERS_FIRST, sortFoldersFirstCheck.getSelection());
store.setValue(DBeaverPreferences.NAVIGATOR_GROUP_BY_DRIVER, groupByDriverCheck.getSelection());
store.setValue(DBeaverPreferences.NAVIGATOR_EDITOR_FULL_NAME, editorFullName.getSelection());
+ store.setValue(DBeaverPreferences.NAVIGATOR_SYNC_EDITOR_DATASOURCE, syncEditorDataSourceWithNavigator.getSelection());
store.setValue(DBeaverPreferences.NAVIGATOR_CONNECTION_DOUBLE_CLICK,
CommonUtils.fromOrdinal(NavigatorViewBase.DoubleClickBehavior.class, doubleClickBehavior.getSelectionIndex()).name());
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
index 0bf942b118a650e9a7c106e68d94b6ecb039fa4a..236c4cfba4f04ba5f3e060cae5ebfbbaae5d4fe1 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
@@ -18,10 +18,11 @@
*/
package org.jkiss.dbeaver.ui.preferences;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
@@ -41,9 +42,6 @@ public class PrefPageMetaData extends TargetPrefPage
private Button separateMetaConnectionCheck;
private Button caseSensitiveNamesCheck;
- private Button overrideClientApplicationNameCheck;
- private Text clientApplicationNameText;
-
public PrefPageMetaData()
{
super();
@@ -56,9 +54,7 @@ public class PrefPageMetaData extends TargetPrefPage
return
store.contains(DBeaverPreferences.READ_EXPENSIVE_PROPERTIES) ||
store.contains(ModelPreferences.META_SEPARATE_CONNECTION) ||
- store.contains(ModelPreferences.META_CASE_SENSITIVE) ||
- store.contains(ModelPreferences.META_CLIENT_NAME_OVERRIDE) ||
- store.contains(ModelPreferences.META_CLIENT_NAME_VALUE)
+ store.contains(ModelPreferences.META_CASE_SENSITIVE)
;
}
@@ -80,32 +76,9 @@ public class PrefPageMetaData extends TargetPrefPage
readExpensiveCheck = UIUtils.createCheckbox(metadataGroup, CoreMessages.pref_page_database_general_checkbox_show_row_count, false);
}
- {
- Group clientNameGroup = UIUtils.createControlGroup(composite, "Client Application Name", 2, GridData.FILL_HORIZONTAL, 0);
-
- final Label label = UIUtils.createLabel(clientNameGroup,
- "Client application name is passed to database server on connect to identify client connections.\n" +
- "By default it is set to product name + product version. You can set it to any custom value.");
- GridData gd = new GridData();
- gd.horizontalSpan = 2;
- label.setLayoutData(gd);
- overrideClientApplicationNameCheck = UIUtils.createCheckbox(clientNameGroup, "Override client application name", null, false, 2);
- overrideClientApplicationNameCheck.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateClientAppEnablement();
- }
- });
- clientApplicationNameText = UIUtils.createLabelText(clientNameGroup, "Client Application Name", "");
- }
-
return composite;
}
- private void updateClientAppEnablement() {
- clientApplicationNameText.setEnabled(overrideClientApplicationNameCheck.getSelection());
- }
-
@Override
protected void loadPreferences(DBPPreferenceStore store)
{
@@ -113,11 +86,6 @@ public class PrefPageMetaData extends TargetPrefPage
readExpensiveCheck.setSelection(store.getBoolean(DBeaverPreferences.READ_EXPENSIVE_PROPERTIES));
separateMetaConnectionCheck.setSelection(store.getBoolean(ModelPreferences.META_SEPARATE_CONNECTION));
caseSensitiveNamesCheck.setSelection(store.getBoolean(ModelPreferences.META_CASE_SENSITIVE));
-
- overrideClientApplicationNameCheck.setSelection(store.getBoolean(ModelPreferences.META_CLIENT_NAME_OVERRIDE));
- clientApplicationNameText.setText(store.getString(ModelPreferences.META_CLIENT_NAME_VALUE));
-
- updateClientAppEnablement();
} catch (Exception e) {
log.warn(e);
}
@@ -130,9 +98,6 @@ public class PrefPageMetaData extends TargetPrefPage
store.setValue(DBeaverPreferences.READ_EXPENSIVE_PROPERTIES, readExpensiveCheck.getSelection());
store.setValue(ModelPreferences.META_SEPARATE_CONNECTION, separateMetaConnectionCheck.getSelection());
store.setValue(ModelPreferences.META_CASE_SENSITIVE, caseSensitiveNamesCheck.getSelection());
-
- store.setValue(ModelPreferences.META_CLIENT_NAME_OVERRIDE, overrideClientApplicationNameCheck.getSelection());
- store.setValue(ModelPreferences.META_CLIENT_NAME_VALUE, clientApplicationNameText.getText());
} catch (Exception e) {
log.warn(e);
}
@@ -145,9 +110,6 @@ public class PrefPageMetaData extends TargetPrefPage
store.setToDefault(DBeaverPreferences.READ_EXPENSIVE_PROPERTIES);
store.setToDefault(ModelPreferences.META_SEPARATE_CONNECTION);
store.setToDefault(ModelPreferences.META_CASE_SENSITIVE);
-
- store.setToDefault(ModelPreferences.META_CLIENT_NAME_OVERRIDE);
- store.setToDefault(ModelPreferences.META_CLIENT_NAME_VALUE);
}
@Override