Internalize some classes and fix a pile of warnings
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / colors / ColorSettingsManager.java
CommitLineData
ca13a91c
FC
1/*******************************************************************************\r
2 * Copyright (c) 2010 Ericsson\r
3 * \r
4 * All rights reserved. This program and the accompanying materials are\r
5 * made available under the terms of the Eclipse Public License v1.0 which\r
6 * accompanies this distribution, and is available at\r
7 * http://www.eclipse.org/legal/epl-v10.html\r
8 * \r
9 * Contributors:\r
10 * Patrick Tasse - Initial API and implementation\r
11 *******************************************************************************/\r
12\r
13package org.eclipse.linuxtools.tmf.ui.views.colors;\r
14\r
15import java.util.ArrayList;\r
5a5c2fc7 16import java.util.Arrays;\r
9fa32496 17import java.util.List;\r
ca13a91c 18\r
8fd82db5 19import org.eclipse.linuxtools.internal.tmf.ui.Activator;\r
72f1e62a 20import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
fb5cad3d 21import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets.TimeGraphColorScheme;\r
ca13a91c
FC
22import org.eclipse.swt.SWT;\r
23import org.eclipse.swt.widgets.Display;\r
24\r
25public class ColorSettingsManager {\r
26\r
27 private static final String COLOR_SETTINGS_FILE_NAME = "color_settings.xml"; //$NON-NLS-1$\r
28 private static final String COLOR_SETTINGS_PATH_NAME =\r
8fd82db5 29 Activator.getDefault().getStateLocation().addTrailingSeparator().append(COLOR_SETTINGS_FILE_NAME).toString();\r
ca13a91c
FC
30 private static final ColorSetting DEFAULT_COLOR_SETTING = new ColorSetting(\r
31 Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB(),\r
32 Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB(),\r
fb5cad3d 33 TimeGraphColorScheme.BLACK_STATE,\r
ca13a91c
FC
34 null);\r
35 public static final int PRIORITY_NONE = Integer.MAX_VALUE;\r
36 \r
37 private static ColorSetting[] fColorSettings = ColorSettingsXML.load(COLOR_SETTINGS_PATH_NAME);\r
9fa32496 38 private static List<IColorSettingsListener> fListeners = new ArrayList<IColorSettingsListener>();\r
ca13a91c
FC
39 \r
40 public static ColorSetting[] getColorSettings() {\r
5a5c2fc7 41 return (fColorSettings != null) ? Arrays.copyOf(fColorSettings, fColorSettings.length) : null;\r
ca13a91c
FC
42 }\r
43 \r
44 public static void setColorSettings(ColorSetting[] colorSettings) {\r
5a5c2fc7 45 fColorSettings = (colorSettings != null) ? Arrays.copyOf(colorSettings, colorSettings.length) : null;\r
ca13a91c
FC
46 ColorSettingsXML.save(COLOR_SETTINGS_PATH_NAME, fColorSettings);\r
47 fireColorSettingsChanged();\r
48 }\r
49 \r
72f1e62a 50 public static ColorSetting getColorSetting(ITmfEvent event) {\r
ca13a91c
FC
51 for (int i = 0; i < fColorSettings.length; i++) {\r
52 ColorSetting colorSetting = fColorSettings[i];\r
53 if (colorSetting.getFilter() != null && colorSetting.getFilter().matches(event)) {\r
54 return colorSetting;\r
55 }\r
56 }\r
57 return DEFAULT_COLOR_SETTING;\r
58 }\r
59 \r
72f1e62a 60 public static int getColorSettingPriority(ITmfEvent event) {\r
ca13a91c
FC
61 for (int i = 0; i < fColorSettings.length; i++) {\r
62 ColorSetting colorSetting = fColorSettings[i];\r
63 if (colorSetting.getFilter() != null && colorSetting.getFilter().matches(event)) {\r
64 return i;\r
65 }\r
66 }\r
67 return PRIORITY_NONE;\r
68 }\r
69\r
70 public static ColorSetting getColorSetting(int priority) {\r
71 if (priority < fColorSettings.length) {\r
72 return fColorSettings[priority];\r
73 }\r
74 return DEFAULT_COLOR_SETTING; \r
75 }\r
76\r
77 public static void addColorSettingsListener(IColorSettingsListener listener) {\r
78 if (! fListeners.contains(listener)) {\r
79 fListeners.add(listener);\r
80 }\r
81 }\r
82 \r
83 public static void removeColorSettingsListener(IColorSettingsListener listener) {\r
84 fListeners.remove(listener);\r
85 }\r
86 \r
87 private static void fireColorSettingsChanged() {\r
88 for (IColorSettingsListener listener : fListeners) {\r
89 listener.colorSettingsChanged(fColorSettings);\r
90 }\r
91 }\r
92}\r
This page took 0.033184 seconds and 5 git commands to generate.