From aacdb6f92100c089d9ca4966923d65b5c70955c0 Mon Sep 17 00:00:00 2001 From: jurgen Date: Mon, 22 Jun 2015 13:28:34 +0000 Subject: [PATCH] Database editors reopen is now configurable --- .../src/org/jkiss/dbeaver/DBeaverPreferences.java | 1 + .../src/org/jkiss/dbeaver/core/CoreMessages.java | 1 + .../src/org/jkiss/dbeaver/core/CoreResources.properties | 3 ++- .../jkiss/dbeaver/core/DBeaverPreferencesInitializer.java | 1 + .../org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java | 8 +++++++- .../dbeaver/ui/editors/DatabaseEditorInputFactory.java | 4 ++++ .../org/jkiss/dbeaver/ui/editors/sql/SQLEditorInput.java | 4 ---- .../dbeaver/ui/preferences/PrefPageDatabaseGeneral.java | 5 +++++ 8 files changed, 21 insertions(+), 6 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java index d6b719c142..cdc15ba05f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/DBeaverPreferences.java @@ -89,6 +89,7 @@ public final class DBeaverPreferences // General UI public static final String UI_AUTO_UPDATE_CHECK = "ui.auto.update.check"; //$NON-NLS-1$ public static final String UI_UPDATE_CHECK_TIME = "ui.auto.update.check.time"; //$NON-NLS-1$ + public static final String UI_KEEP_DATABASE_EDITORS = "ui.editors.reopen-after-restart"; //$NON-NLS-1$ public static final String UI_DRIVERS_HOME = "ui.drivers.home"; //$NON-NLS-1$ public static final String UI_PROXY_HOST = "ui.proxy.host"; //$NON-NLS-1$ public static final String UI_PROXY_PORT = "ui.proxy.port"; //$NON-NLS-1$ diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java index 020a440b88..02be8b2893 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java @@ -1294,6 +1294,7 @@ public class CoreMessages extends NLS { public static String pref_page_target_link_show_global_settings; public static String pref_page_ui_general_checkbox_automatic_updates; + public static String pref_page_ui_general_keep_database_editors; public static String pref_page_ui_general_group_general; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties index 23aec95d47..273c1d14eb 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties @@ -859,7 +859,8 @@ pref_page_sql_editor_label_sql_timeout=SQL statement timeout pref_page_target_button_use_datasource_settings=Datasource "{0}" settings pref_page_target_link_show_datasource_settings=Datasource settings pref_page_target_link_show_global_settings=Global settings -pref_page_ui_general_checkbox_automatic_updates=Automatic Updates Check +pref_page_ui_general_checkbox_automatic_updates=Automatic updates check +pref_page_ui_general_keep_database_editors=Reopen database editors after restart pref_page_ui_general_group_general=General pref_page_ui_general_group_http_proxy=HTTP Proxy (for downloads) pref_page_ui_general_label_proxy_host=Proxy Host diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java index 24c9cb92b8..7ecc42c5b7 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java @@ -142,6 +142,7 @@ public class DBeaverPreferencesInitializer extends AbstractPreferenceInitializer // General UI RuntimeUtils.setDefaultPreferenceValue(store, DBeaverPreferences.UI_AUTO_UPDATE_CHECK, true); + RuntimeUtils.setDefaultPreferenceValue(store, DBeaverPreferences.UI_KEEP_DATABASE_EDITORS, true); RuntimeUtils.setDefaultPreferenceValue(store, DBeaverPreferences.UI_PROXY_HOST, ""); RuntimeUtils.setDefaultPreferenceValue(store, DBeaverPreferences.UI_PROXY_PORT, 0); RuntimeUtils.setDefaultPreferenceValue(store, DBeaverPreferences.UI_PROXY_USER, ""); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java index dde7d03bfb..aceeab45ce 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java @@ -99,7 +99,13 @@ public abstract class DatabaseEditorInput implemen @Override public IPersistableElement getPersistable() { - return getExecutionContext() == null ? null : this; + if (getExecutionContext() == null || + !DBeaverCore.getGlobalPreferenceStore().getBoolean(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS)) + { + return null; + } + + return this; } @Override diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java index 7ad8c75662..b324e31df2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java @@ -17,6 +17,7 @@ */ package org.jkiss.dbeaver.ui.editors; +import org.jkiss.dbeaver.DBeaverPreferences; import org.jkiss.dbeaver.core.Log; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IAdaptable; @@ -168,6 +169,9 @@ public class DatabaseEditorInputFactory implements IElementFactory public static void saveState(IMemento memento, DatabaseEditorInput input) { + if (!DBeaverCore.getGlobalPreferenceStore().getBoolean(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS)) { + return; + } DBCExecutionContext context = input.getExecutionContext(); if (context == null) { // Detached - nothing to save diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorInput.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorInput.java index 9867610850..6684fa0d0d 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorInput.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorInput.java @@ -116,10 +116,6 @@ public class SQLEditorInput extends ProjectFileEditorInput implements IPersistab return this; } - private static boolean restoreEditorState() { - return WorkbenchPlugin.getDefault().getPreferenceStore().getBoolean(IPreferenceConstants.USE_IPERSISTABLE_EDITORS); - } - @Override public String getFactoryId() { 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 dfd49f00ae..d87a8db14e 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 @@ -44,6 +44,7 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.main.common"; //$NON-NLS-1$ private Button automaticUpdateCheck; + private Button keepEditorsOnRestart; private Button longOperationsCheck; private Spinner longOperationsTimeout; @@ -75,6 +76,8 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc Group groupObjects = UIUtils.createControlGroup(composite, CoreMessages.pref_page_ui_general_group_general, 1, GridData.VERTICAL_ALIGN_BEGINNING, 300); automaticUpdateCheck = UIUtils.createCheckbox(groupObjects, CoreMessages.pref_page_ui_general_checkbox_automatic_updates, false); automaticUpdateCheck.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, true, false, 2, 1)); + + keepEditorsOnRestart = UIUtils.createCheckbox(groupObjects, CoreMessages.pref_page_ui_general_keep_database_editors, false); } // Agent settings @@ -117,6 +120,7 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc IPreferenceStore store = DBeaverCore.getGlobalPreferenceStore(); automaticUpdateCheck.setSelection(store.getBoolean(DBeaverPreferences.UI_AUTO_UPDATE_CHECK)); + keepEditorsOnRestart.setSelection(store.getBoolean(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS)); longOperationsCheck.setSelection(store.getBoolean(DBeaverPreferences.AGENT_LONG_OPERATION_NOTIFY)); longOperationsTimeout.setSelection(store.getInt(DBeaverPreferences.AGENT_LONG_OPERATION_TIMEOUT)); expandOnConnectCheck.setSelection(store.getBoolean(DBeaverPreferences.NAVIGATOR_EXPAND_ON_CONNECT)); @@ -133,6 +137,7 @@ public class PrefPageDatabaseGeneral extends PreferencePage implements IWorkbenc IPreferenceStore store = DBeaverCore.getGlobalPreferenceStore(); store.setValue(DBeaverPreferences.UI_AUTO_UPDATE_CHECK, automaticUpdateCheck.getSelection()); + store.setValue(DBeaverPreferences.UI_KEEP_DATABASE_EDITORS, keepEditorsOnRestart.getSelection()); //store.setValue(DBeaverPreferences.AGENT_ENABLED, agentEnabledCheck.getSelection()); store.setValue(DBeaverPreferences.AGENT_LONG_OPERATION_NOTIFY, longOperationsCheck.getSelection()); store.setValue(DBeaverPreferences.AGENT_LONG_OPERATION_TIMEOUT, longOperationsTimeout.getSelection()); -- GitLab