Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java106
1 files changed, 77 insertions, 29 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
index cf86a68bd..c4b6a11a7 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,9 +17,9 @@ import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.SWT;
+import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer {
@@ -72,26 +72,10 @@ public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer
prefs.setDefault(IDebugPreferenceConstants.CONSOLE_LOW_WATER_MARK, 80000);
prefs.setDefault(IDebugPreferenceConstants.CONSOLE_HIGH_WATER_MARK, 100000);
prefs.setDefault(IDebugPreferenceConstants.CONSOLE_TAB_WIDTH, 8);
-
- // colors
- PreferenceConverter.setDefault(prefs, IDebugPreferenceConstants.CONSOLE_SYS_OUT_COLOR, new RGB(0, 0, 0));
- PreferenceConverter.setDefault(prefs, IDebugPreferenceConstants.CONSOLE_SYS_IN_COLOR, new RGB(0, 200, 125));
- PreferenceConverter.setDefault(prefs, IDebugPreferenceConstants.CONSOLE_SYS_ERR_COLOR, new RGB(255, 0, 0));
- // can be called in non-UI thread, so we must play safe
- Display display = DebugUIPlugin.getStandardDisplay();
- if (Thread.currentThread().equals(display.getThread())) {
- PreferenceConverter.setDefault(prefs, IDebugPreferenceConstants.CONSOLE_BAKGROUND_COLOR, display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB());
- } else {
- display.asyncExec(new Runnable() {
- public void run() {
- PreferenceConverter.setDefault(
- DebugUIPlugin.getDefault().getPreferenceStore(),
- IDebugPreferenceConstants.CONSOLE_BAKGROUND_COLOR,
- DebugUIPlugin.getStandardDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB());
- }
- });
- }
-
+
+ // console colors
+ setThemeBasedPreferences(prefs, false);
+
PreferenceConverter.setDefault(prefs, IInternalDebugUIConstants.PREF_CHANGED_VALUE_BACKGROUND, new RGB(255, 255, 0));
PreferenceConverter.setDefault(prefs, IDebugUIConstants.PREF_MEMORY_HISTORY_UNKNOWN_COLOR, new RGB(114, 119, 129));
PreferenceConverter.setDefault(prefs, IDebugUIConstants.PREF_MEMORY_HISTORY_KNOWN_COLOR, new RGB(0, 0, 0));
@@ -116,21 +100,21 @@ public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer
prefs.setDefault(IDebugUIConstants.ID_EXPRESSION_VIEW + '+' + "org.eclipse.debug.ui.ShowTypeNamesAction", false); //$NON-NLS-1$
// set default for column size preference
- prefs.setDefault(IDebugPreferenceConstants.PREF_COLUMN_SIZE,
+ prefs.setDefault(IDebugPreferenceConstants.PREF_COLUMN_SIZE,
IDebugPreferenceConstants.PREF_COLUMN_SIZE_DEFAULT);
// set default for row size preference
- prefs.setDefault(IDebugPreferenceConstants.PREF_ROW_SIZE,
+ prefs.setDefault(IDebugPreferenceConstants.PREF_ROW_SIZE,
IDebugPreferenceConstants.PREF_ROW_SIZE_DEFAULT);
// set default padded string
- prefs.setDefault(IDebugUIConstants.PREF_PADDED_STR,
+ prefs.setDefault(IDebugUIConstants.PREF_PADDED_STR,
IDebugPreferenceConstants.PREF_PADDED_STR_DEFAULT);
- // set default code page for ascii and ebcdic
- prefs.setDefault(IDebugUIConstants.PREF_DEFAULT_ASCII_CODE_PAGE,
+ // set default code page for ascii and ebcdic
+ prefs.setDefault(IDebugUIConstants.PREF_DEFAULT_ASCII_CODE_PAGE,
IDebugPreferenceConstants.DEFAULT_ASCII_CP);
- prefs.setDefault(IDebugUIConstants.PREF_DEFAULT_EBCDIC_CODE_PAGE,
+ prefs.setDefault(IDebugUIConstants.PREF_DEFAULT_EBCDIC_CODE_PAGE,
IDebugPreferenceConstants.DEFAULT_EBCDIC_CP);
if (MemoryViewUtil.isLinuxGTK()) {
@@ -154,4 +138,68 @@ public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer
prefs.setDefault(IInternalDebugUIConstants.PREF_FILTER_WORKING_SETS, false);
prefs.setDefault(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES, false);
}
+
+ /**
+ * Returns the RGB for the given key in the given color registry.
+ *
+ * @param registry the color registry
+ * @param key the key for the constant in the registry
+ * @param defaultRGB the default RGB if no entry is found
+ * @return RGB the RGB
+ * @since 3.4
+ */
+ private static RGB findRGB(ColorRegistry registry, String key, RGB defaultRGB) {
+ if (registry == null)
+ return defaultRGB;
+
+ RGB rgb= registry.getRGB(key);
+ if (rgb != null)
+ return rgb;
+
+ return defaultRGB;
+ }
+
+ /**
+ * Sets the default value and fires a property
+ * change event if necessary.
+ *
+ * @param store the preference store
+ * @param key the preference key
+ * @param newValue the new value
+ * @param fireEvent <code>false</code> if no event should be fired
+ * @since 3.4
+ */
+ private static void setDefault(IPreferenceStore store, String key, RGB newValue, boolean fireEvent) {
+ if (!fireEvent) {
+ PreferenceConverter.setDefault(store, key, newValue);
+ } else {
+ RGB oldValue= null;
+ if (store.isDefault(key))
+ oldValue= PreferenceConverter.getDefaultColor(store, key);
+
+ PreferenceConverter.setDefault(store, key, newValue);
+
+ if (oldValue != null && !oldValue.equals(newValue))
+ store.firePropertyChangeEvent(key, oldValue, newValue);
+ }
+ }
+
+ public static void setThemeBasedPreferences(IPreferenceStore store, boolean fireEvent) {
+ ColorRegistry registry= null;
+ if (PlatformUI.isWorkbenchRunning())
+ registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
+
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_BAKGROUND_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_BACKGROUND, new RGB(255, 255, 255)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_OUT_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_OUT, new RGB(0, 0, 0)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_IN_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_IN, new RGB(0, 200, 125)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_ERR_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_ERR, new RGB(255, 0, 0)), fireEvent);
+ }
}

Back to the top