From ce88bbac4affef1ed1551d5fb151e15a24f41777 Mon Sep 17 00:00:00 2001 From: Warren Paul Date: Fri, 9 May 2008 16:03:01 +0000 Subject: [PATCH] fixed bug #217189. --- .../internal/ui/CPluginResources.properties | 1 + .../ui/buildconsole/BuildConsole.java | 20 +++++++++++++++++++ .../ui/buildconsole/BuildConsoleManager.java | 10 +++++++++- .../ui/buildconsole/BuildConsolePage.java | 4 ++++ .../BuildConsolePreferencePage.java | 4 ++++ 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginResources.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginResources.properties index c3e114ba63e..b8157dcfab8 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginResources.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginResources.properties @@ -28,6 +28,7 @@ ConsolePreferencePage.colorSettings.label=Console text color settings ConsolePreferencePage.outputColor.label=Output text color ConsolePreferencePage.infoColor.label=Information message text color ConsolePreferencePage.errorColor.label=Error message text color +ConsolePreferencePage.backgroundColor.label=Background color # ------- Project/Prefernces/Wizards COnfiguration blocks ------- diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsole.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsole.java index 1a6696e2c32..59a9cbe92c7 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsole.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsole.java @@ -15,7 +15,9 @@ import org.eclipse.cdt.internal.ui.CPluginImages; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.IBuildConsoleManager; import org.eclipse.core.resources.IProject; +import org.eclipse.swt.graphics.Color; import org.eclipse.ui.console.AbstractConsole; +import org.eclipse.ui.console.IConsoleConstants; import org.eclipse.ui.console.IConsoleView; import org.eclipse.ui.part.IPageBookViewPage; @@ -29,6 +31,7 @@ public class BuildConsole extends AbstractConsole { private IBuildConsoleManager fConsoleManager; private String fConsoleName; private String fConsoleId; + private Color fBackground; public BuildConsole(IBuildConsoleManager manager, String name, String id) { super(name, CPluginImages.DESC_BUILD_CONSOLE); @@ -52,4 +55,21 @@ public class BuildConsole extends AbstractConsole { public IBuildConsoleManager getConsoleManager() { return fConsoleManager; } + + public void setBackground(Color background) { + if (fBackground == null) { + if (background == null) { + return; + } + } else if (fBackground.equals(background)){ + return; + } + Color old = fBackground; + fBackground = background; + firePropertyChange(this, IConsoleConstants.P_BACKGROUND_COLOR, old, fBackground); + } + + public Color getBackground() { + return fBackground; + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleManager.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleManager.java index 78747827c25..0041f034354 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleManager.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleManager.java @@ -53,7 +53,7 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang ListenerList listeners = new ListenerList(); BuildConsole fConsole; private Map fConsoleMap = new HashMap(); - Color infoColor, outputColor, errorColor; + Color infoColor, outputColor, errorColor, backgroundColor; BuildConsoleStream infoStream, outputStream, errorStream; String fName, fContextMenuId; @@ -158,6 +158,7 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang infoColor.dispose(); outputColor.dispose(); errorColor.dispose(); + backgroundColor.dispose(); } ConsolePlugin.getDefault().getConsoleManager().removeConsoles(new org.eclipse.ui.console.IConsole[]{fConsole}); CUIPlugin.getWorkspace().removeResourceChangeListener(this); @@ -202,6 +203,8 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang errorStream.setConsole(fConsole); errorColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_ERROR_COLOR); errorStream.setColor(errorColor); + backgroundColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR); + fConsole.setBackground(backgroundColor); } }); CUIPlugin.getWorkspace().addResourceChangeListener(this); @@ -231,6 +234,11 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang errorStream.setColor(newColor); errorColor.dispose(); errorColor = newColor; + } else if (property.equals(BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR)) { + Color newColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR); + fConsole.setBackground(newColor); + backgroundColor.dispose(); + backgroundColor = newColor; } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsolePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsolePage.java index 9ed00ccd129..f91935e768f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsolePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsolePage.java @@ -208,6 +208,8 @@ public class BuildConsolePage extends Page getConsole().addPropertyChangeListener(this); fViewer.addTextListener(this); + fViewer.getTextWidget().setBackground(getConsole().getBackground()); + setInitialSelection(); } @@ -251,6 +253,8 @@ public class BuildConsolePage extends Page setFont(JFaceResources.getFont(BuildConsolePreferencePage.PREF_BUILDCONSOLE_FONT)); } else if (property.equals(BuildConsolePreferencePage.PREF_BUILDCONSOLE_TAB_WIDTH)) { setTabs(CUIPlugin.getDefault().getPluginPreferences().getInt(BuildConsolePreferencePage.PREF_BUILDCONSOLE_TAB_WIDTH)); + } else if (IConsoleConstants.P_BACKGROUND_COLOR.equals(property)) { + fViewer.getTextWidget().setBackground(fConsole.getBackground()); } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/BuildConsolePreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/BuildConsolePreferencePage.java index efa7d494ca2..7479da749aa 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/BuildConsolePreferencePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/BuildConsolePreferencePage.java @@ -39,6 +39,7 @@ public class BuildConsolePreferencePage extends FieldEditorPreferencePage implem public static final String PREF_BUILDCONSOLE_INFO_COLOR = "buildConsoleInfoStreamColor"; //$NON-NLS-1$ public static final String PREF_BUILDCONSOLE_OUTPUT_COLOR = "buildConsoleOutputStreamColor"; //$NON-NLS-1$ public static final String PREF_BUILDCONSOLE_ERROR_COLOR = "buildConsoleErrorStreamColor"; //$NON-NLS-1$ + public static final String PREF_BUILDCONSOLE_BACKGROUND_COLOR = "buildConsoleBackgroundColor"; //$NON-NLS-1$ public BuildConsolePreferencePage() { super(GRID); @@ -79,6 +80,8 @@ public class BuildConsolePreferencePage extends FieldEditorPreferencePage implem CUIPlugin.getResourceString("ConsolePreferencePage.infoColor.label"), parent)); //$NON-NLS-1$ addField(createColorFieldEditor(PREF_BUILDCONSOLE_ERROR_COLOR, CUIPlugin.getResourceString("ConsolePreferencePage.errorColor.label"), parent)); //$NON-NLS-1$ + addField(createColorFieldEditor(PREF_BUILDCONSOLE_BACKGROUND_COLOR, + CUIPlugin.getResourceString("ConsolePreferencePage.backgroundColor.label"), parent)); //$NON-NLS-1$ } private Label createLabel(Composite parent, String text) { @@ -131,6 +134,7 @@ public class BuildConsolePreferencePage extends FieldEditorPreferencePage implem PreferenceConverter.setDefault(prefs, PREF_BUILDCONSOLE_OUTPUT_COLOR, new RGB(0, 0, 0)); PreferenceConverter.setDefault(prefs, PREF_BUILDCONSOLE_INFO_COLOR, new RGB(0, 0, 255)); PreferenceConverter.setDefault(prefs, PREF_BUILDCONSOLE_ERROR_COLOR, new RGB(255, 0, 0)); + PreferenceConverter.setDefault(prefs, PREF_BUILDCONSOLE_BACKGROUND_COLOR, new RGB(255, 255, 255)); } }