Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Unified Diff: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/sources/ColorManager.java

Issue 17431004: New UI for Find command: find-as-you-type. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/sources/ColorManager.java
===================================================================
--- editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/sources/ColorManager.java (revision 0)
+++ editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/ui/sources/ColorManager.java (revision 0)
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc. 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 http://www.eclipse.org/legal/epl-v10.html Contributors:
+ * xored software, Inc. - initial API and Implementation (Yuri Strot)
+ *******************************************************************************/
+package com.xored.glance.ui.sources;
+
+import com.google.dart.tools.ui.DartToolsPlugin;
+
+import com.xored.glance.internal.ui.GlancePlugin;
+import com.xored.glance.internal.ui.preferences.IPreferenceConstants;
+import com.xored.glance.internal.ui.preferences.TreeColors;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+
+import static org.eclipse.jface.preference.PreferenceConverter.getColor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Yuri Strot
+ */
+public class ColorManager implements IPropertyChangeListener, IPreferenceConstants {
+
+ public static final String ANNOTATION_ID = "com.xored.glance.ui.highlight";
+ public static final String ANNOTATION_SELECTED_ID = "com.xored.glance.ui.select";
+
+ private static ColorManager INSTANCE;
+
+ public static ColorManager getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new ColorManager();
+ }
+ return INSTANCE;
+ }
+
+ public static IPreferenceStore getStore() {
+// return ((AbstractUIPlugin) Platform.getPlugin("org.eclipse.ui.editors")).getPreferenceStore();
+ return DartToolsPlugin.getDefault().getPreferenceStore();
+ }
+
+ public static Color lighten(Color color, int delta) {
+ int r = ensureColor(color.getRed() + delta);
+ int g = ensureColor(color.getGreen() + delta);
+ int b = ensureColor(color.getBlue() + delta);
+ return new Color(color.getDevice(), r, g, b);
+ }
+
+ private static int ensureColor(int value) {
+ return value > 255 ? 255 : value;
+ }
+
+ private Color selection;
+
+ private Color highlight;
+
+ private Color treeBg;
+
+ private Color treeFg;
+
+ private boolean useNative;
+
+ private List<Color> toDispose = new ArrayList<Color>();
+
+ private ColorManager() {
+ getStore().addPropertyChangeListener(this);
+ GlancePlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
+ updateColors();
+ }
+
+ public Color getBackgroundColor() {
+ return selection;
+ }
+
+ public Color getSelectedBackgroundColor() {
+ return highlight;
+ }
+
+ public Color getTreeSelectionBg() {
+ return treeBg;
+ }
+
+ public Color getTreeSelectionFg() {
+ return treeFg;
+ }
+
+ public boolean isUseNative() {
+ return useNative;
+ }
+
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (COLOR_HIGHLIGHT.equals(event.getProperty()) || COLOR_SELECTION.equals(event.getProperty())) {
+ updateColors();
+ }
+ }
+
+ private void updateColors() {
+ for (Color color : toDispose) {
+ color.dispose();
+ }
+ toDispose = new ArrayList<Color>();
+
+ final Display display = PlatformUI.getWorkbench().getDisplay();
+ final IPreferenceStore store = getStore();
+
+ selection = new Color(display, getColor(store, COLOR_HIGHLIGHT));
+ highlight = new Color(display, getColor(store, COLOR_SELECTION));
+
+ TreeColors colors = TreeColors.getDefault();
+ useNative = colors.isUseNative();
+ if (colors.getBg() != null) {
+ treeBg = new Color(display, colors.getBg());
+ toDispose.add(treeBg);
+ } else {
+ treeBg = display.getSystemColor(SWT.COLOR_LIST_SELECTION);
+ }
+
+ if (colors.getFg() != null) {
+ treeFg = new Color(display, colors.getFg());
+ toDispose.add(treeFg);
+ } else {
+ treeFg = display.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
+ }
+
+ toDispose.add(selection);
+ toDispose.add(highlight);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698