Bug 572002: Adapt use of SWTs Color to current recommendation
- Change to Color constructors without Device
- Remove calls to Color.dispose
- Adapt to removed ColorManager
Change-Id: I9745f870733ff871c46898c3802e5392e2179bc4
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/TextViewerEditorColorUpdater.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/TextViewerEditorColorUpdater.java
index 91561ff..de5dcf8 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/TextViewerEditorColorUpdater.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/TextViewerEditorColorUpdater.java
@@ -34,31 +34,29 @@
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
+@NonNullByDefault
public class TextViewerEditorColorUpdater {
- protected final ISourceViewer fViewer;
- protected final IPreferenceStore fPreferenceStore;
+ protected final ISourceViewer viewer;
+ protected final IPreferenceStore preferenceStore;
- private IPropertyChangeListener fListener;
-
- private Color fForegroundColor;
- private Color fBackgroundColor;
- private Color fSelectionForegroundColor;
- private Color fSelectionBackgroundColor;
+ private @Nullable IPropertyChangeListener listener;
public TextViewerEditorColorUpdater(final SourceViewer viewer, final IPreferenceStore preferenceStore) {
assert (viewer != null);
assert (preferenceStore != null);
- this.fViewer= viewer;
- this.fPreferenceStore= preferenceStore;
+ this.viewer= viewer;
+ this.preferenceStore= preferenceStore;
viewer.getTextWidget().addDisposeListener(new DisposeListener() {
@Override
@@ -67,7 +65,7 @@
}
});
- this.fListener= new IPropertyChangeListener() {
+ this.listener= new IPropertyChangeListener() {
@Override
public void propertyChange(final PropertyChangeEvent event) {
if (PREFERENCE_COLOR_FOREGROUND.equals(event.getProperty())
@@ -82,98 +80,63 @@
}
}
};
- this.fPreferenceStore.addPropertyChangeListener(this.fListener);
+ this.preferenceStore.addPropertyChangeListener(this.listener);
updateColors();
}
protected void updateColors() {
- final StyledText styledText= this.fViewer.getTextWidget();
+ final StyledText styledText= this.viewer.getTextWidget();
if (UIAccess.isOkToUse(styledText)) {
{ // foreground color
- final Color color= this.fPreferenceStore.getBoolean(
+ final Color color= this.preferenceStore.getBoolean(
PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT) ? null :
- createColor(this.fPreferenceStore, PREFERENCE_COLOR_FOREGROUND,
- styledText.getDisplay() );
+ createColor(this.preferenceStore, PREFERENCE_COLOR_FOREGROUND);
styledText.setForeground(color);
- if (this.fForegroundColor != null) {
- this.fForegroundColor.dispose();
- }
- this.fForegroundColor= color;
}
{ // background color
- final Color color= this.fPreferenceStore.getBoolean(
+ final Color color= this.preferenceStore.getBoolean(
PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT) ? null :
- createColor(this.fPreferenceStore, PREFERENCE_COLOR_BACKGROUND,
- styledText.getDisplay() );
+ createColor(this.preferenceStore, PREFERENCE_COLOR_BACKGROUND);
styledText.setBackground(color);
- if (this.fBackgroundColor != null) {
- this.fBackgroundColor.dispose();
- }
- this.fBackgroundColor= color;
}
{ // selection foreground color
- final Color color= this.fPreferenceStore.getBoolean(
+ final Color color= this.preferenceStore.getBoolean(
PREFERENCE_COLOR_SELECTION_FOREGROUND_SYSTEM_DEFAULT) ? null :
- createColor(this.fPreferenceStore, PREFERENCE_COLOR_SELECTION_FOREGROUND,
- styledText.getDisplay() );
+ createColor(this.preferenceStore, PREFERENCE_COLOR_SELECTION_FOREGROUND);
styledText.setSelectionForeground(color);
- if (this.fSelectionForegroundColor != null) {
- this.fSelectionForegroundColor.dispose();
- }
- this.fSelectionForegroundColor= color;
}
{ // selection background color
- final Color color= this.fPreferenceStore.getBoolean(
+ final Color color= this.preferenceStore.getBoolean(
PREFERENCE_COLOR_SELECTION_BACKGROUND_SYSTEM_DEFAULT) ? null :
- createColor(this.fPreferenceStore, PREFERENCE_COLOR_SELECTION_BACKGROUND,
- styledText.getDisplay() );
+ createColor(this.preferenceStore, PREFERENCE_COLOR_SELECTION_BACKGROUND);
styledText.setSelectionBackground(color);
- if (this.fSelectionBackgroundColor != null) {
- this.fSelectionBackgroundColor.dispose();
- }
- this.fSelectionBackgroundColor= color;
}
}
}
- protected Color createColor(final IPreferenceStore store, final String key,
- final Display display) {
+ protected @Nullable Color createColor(final IPreferenceStore store, final String key) {
final RGB rgb= PreferenceConverter.getColor(store, key);
- return (rgb != null) ? new Color(display, rgb) : null;
+ return (rgb != null) ? new Color(rgb) : null;
}
protected void dispose() {
- if (this.fListener != null) {
- this.fPreferenceStore.removePropertyChangeListener(this.fListener);
- this.fListener= null;
+ { final var listener= this.listener;
+ if (listener != null) {
+ this.listener= null;
+ this.preferenceStore.removePropertyChangeListener(listener);
+ }
}
- final StyledText styledText= this.fViewer.getTextWidget();
+ final StyledText styledText= this.viewer.getTextWidget();
if (UIAccess.isOkToUse(styledText)) {
styledText.setForeground(null);
styledText.setBackground(null);
styledText.setSelectionForeground(null);
styledText.setSelectionBackground(null);
}
- if (this.fForegroundColor != null) {
- this.fForegroundColor.dispose();
- this.fForegroundColor= null;
- }
- if (this.fBackgroundColor != null) {
- this.fBackgroundColor.dispose();
- this.fBackgroundColor= null;
- }
- if (this.fSelectionForegroundColor != null) {
- this.fSelectionForegroundColor.dispose();
- this.fSelectionForegroundColor= null;
- }
- if (this.fSelectionBackgroundColor != null) {
- this.fSelectionBackgroundColor.dispose();
- this.fSelectionBackgroundColor= null;
- }
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/presentation/AbstractTextStylesConfigurationBlock.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/presentation/AbstractTextStylesConfigurationBlock.java
index 8b56fc0..1de17db 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/presentation/AbstractTextStylesConfigurationBlock.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/presentation/AbstractTextStylesConfigurationBlock.java
@@ -84,7 +84,6 @@
import org.eclipse.statet.ecommons.text.ui.TextViewerJFaceUpdater;
import org.eclipse.statet.ecommons.text.ui.presentation.AbstractTextStylesConfigurationBlock.SyntaxNode.UseStyle;
import org.eclipse.statet.ecommons.text.ui.settings.TextStyleManager;
-import org.eclipse.statet.ecommons.ui.ColorManager;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
import org.eclipse.statet.ecommons.ui.util.MessageUtils;
import org.eclipse.statet.ecommons.ui.util.PixelConverter;
@@ -530,7 +529,6 @@
private Button strikethroughCheckbox;
private Button underlineCheckbox;
- private ColorManager colorManager;
private TextStyleManager textStyles;
protected SourceViewer previewViewer;
@@ -699,13 +697,11 @@
}
private Control createPreviewer(final Composite parent) {
- this.colorManager= new ColorManager();
-
final IPreferenceStore store= new ChainedPreferenceStore(new IPreferenceStore[] {
this.fOverlayStore, EditorsUI.getPreferenceStore() });
this.previewViewer= new SourceViewer(parent, null, null, false, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
this.previewViewer.setEditable(false);
- this.configuration= getSourceViewerConfiguration(this.colorManager, store);
+ this.configuration= getSourceViewerConfiguration(store);
this.previewViewer.configure(this.configuration);
new TextViewerJFaceUpdater(this.previewViewer, store);
new TextViewerEditorColorUpdater(this.previewViewer, store);
@@ -721,8 +717,8 @@
protected abstract String getPreviewFileName();
protected SourceEditorViewerConfiguration getSourceViewerConfiguration(
- final ColorManager colorManager, final IPreferenceStore preferenceStore) {
- this.textStyles= new TextStyleManager(colorManager, preferenceStore, getSettingsGroup());
+ final IPreferenceStore preferenceStore) {
+ this.textStyles= new TextStyleManager(preferenceStore, getSettingsGroup());
return getSourceEditorViewerConfiguration(preferenceStore, this.textStyles);
}
@@ -899,10 +895,6 @@
this.dbc.dispose();
this.dbc= null;
}
- if (this.colorManager != null) {
- this.colorManager.dispose();
- this.colorManager= null;
- }
super.dispose();
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/CssTextStyleManager.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/CssTextStyleManager.java
index aa43bf0..2186c49 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/CssTextStyleManager.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/CssTextStyleManager.java
@@ -53,7 +53,7 @@
public CssTextStyleManager(final IPreferenceStore preferenceStore, final String stylesGroupId,
final String defaultRootKey) {
- super(null, preferenceStore, stylesGroupId);
+ super(preferenceStore, stylesGroupId);
this.defaultRootKey= defaultRootKey;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/TextStyleManager.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/TextStyleManager.java
index 43e850f..befc0af 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/TextStyleManager.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ecommons/text/ui/settings/TextStyleManager.java
@@ -24,11 +24,11 @@
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.statet.ecommons.preferences.SettingsChangeNotifier.ManageListener;
import org.eclipse.statet.ecommons.text.ui.presentation.ITextPresentationConstants;
-import org.eclipse.statet.ecommons.ui.ColorManager;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
@@ -38,7 +38,6 @@
public class TextStyleManager implements ManageListener {
- protected ColorManager colorManager;
protected IPreferenceStore preferenceStore;
protected String[] tokenNames;
private final String stylesGroupId;
@@ -46,10 +45,9 @@
private final Map<String, Token> tokenMap= new HashMap<>();
- public TextStyleManager(final ColorManager colorManager, final IPreferenceStore preferenceStore,
+ public TextStyleManager(final IPreferenceStore preferenceStore,
final String stylesGroupId) {
super();
- this.colorManager= colorManager;
this.preferenceStore= preferenceStore;
this.stylesGroupId= stylesGroupId;
}
@@ -104,7 +102,7 @@
style |= TextAttribute.STRIKETHROUGH;
}
- return new TextAttribute(this.colorManager.getColor(rgb), null, style);
+ return new TextAttribute(new Color(rgb), null, style);
}
public boolean affectsTextPresentation(final Set<String> groupIds) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceViewerDecorationSupport.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceViewerDecorationSupport.java
index dd75250..d658909 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceViewerDecorationSupport.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceViewerDecorationSupport.java
@@ -21,9 +21,6 @@
import org.eclipse.jface.text.source.ISharedTextColors;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-
-import org.eclipse.statet.ecommons.ui.SharedUIResources;
import org.eclipse.statet.internal.ltk.ui.OverwriteTextStyleStrategy;
@@ -55,8 +52,8 @@
painter.addTextStyleStrategy("org.eclipse.statet.Overwrite", fgOverwriteStrategy);
painter.addAnnotationType("org.eclipse.statet.ecommons.text.editorAnnotations.ContentAssistOverwrite", "org.eclipse.statet.Overwrite");
- final Color color= SharedUIResources.getColors().getColor(new RGB(255, 0, 0));
- painter.setAnnotationTypeColor("org.eclipse.statet.ecommons.text.editorAnnotations.ContentAssistOverwrite", color);
+ painter.setAnnotationTypeColor("org.eclipse.statet.ecommons.text.editorAnnotations.ContentAssistOverwrite",
+ new Color(255, 0, 0) );
return painter;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistPreferences.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistPreferences.java
index a138da5..ffdf010 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistPreferences.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistPreferences.java
@@ -26,8 +26,6 @@
import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
import org.eclipse.statet.ecommons.preferences.ui.RGBPref;
-import org.eclipse.statet.ecommons.ui.ColorManager;
-import org.eclipse.statet.ecommons.ui.SharedUIResources;
import org.eclipse.statet.ltk.ui.LTKUIPreferences;
@@ -150,7 +148,6 @@
* Configure the given content assistant according common StatET settings.
*/
public void configure(final ContentAssistant assistant) {
- final ColorManager manager= SharedUIResources.getColors();
final PreferenceAccess prefs= PreferenceUtils.getInstancePrefs();
assistant.enableAutoActivation(prefs.getPreferenceValue(this.autoActivationEnabled));
@@ -159,13 +156,13 @@
assistant.enableAutoInsert(prefs.getPreferenceValue(this.autoInsertSingle));
assistant.enablePrefixCompletion(prefs.getPreferenceValue(this.autoInsertPrefix));
- { final Color c= manager.getColor(prefs.getPreferenceValue(this.informationForeground));
- assistant.setContextInformationPopupForeground(c);
- assistant.setContextSelectorForeground(c);
+ { final var color= new Color(prefs.getPreferenceValue(this.informationForeground));
+ assistant.setContextInformationPopupForeground(color);
+ assistant.setContextSelectorForeground(color);
}
- { final Color c= manager.getColor(prefs.getPreferenceValue(this.informationBackground));
- assistant.setContextInformationPopupBackground(c);
- assistant.setContextSelectorBackground(c);
+ { final var color= new Color(prefs.getPreferenceValue(this.informationBackground));
+ assistant.setContextInformationPopupBackground(color);
+ assistant.setContextSelectorBackground(color);
}
if (assistant instanceof ContentAssist) {