Re-structure LTTng sub-project as per the Linux Tools guidelines
[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
16\r
6c13869b 17import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
ca13a91c
FC
18import org.eclipse.linuxtools.tmf.ui.TmfUiPlugin;\r
19import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.widgets.TraceColorScheme;\r
20import org.eclipse.swt.SWT;\r
21import org.eclipse.swt.widgets.Display;\r
22\r
23public class ColorSettingsManager {\r
24\r
25 private static final String COLOR_SETTINGS_FILE_NAME = "color_settings.xml"; //$NON-NLS-1$\r
26 private static final String COLOR_SETTINGS_PATH_NAME =\r
27 TmfUiPlugin.getDefault().getStateLocation().addTrailingSeparator().append(COLOR_SETTINGS_FILE_NAME).toString();\r
28 private static final ColorSetting DEFAULT_COLOR_SETTING = new ColorSetting(\r
29 Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB(),\r
30 Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB(),\r
31 TraceColorScheme.BLACK_STATE,\r
32 null);\r
33 public static final int PRIORITY_NONE = Integer.MAX_VALUE;\r
34 \r
35 private static ColorSetting[] fColorSettings = ColorSettingsXML.load(COLOR_SETTINGS_PATH_NAME);\r
36 private static ArrayList<IColorSettingsListener> fListeners = new ArrayList<IColorSettingsListener>();\r
37 \r
38 public static ColorSetting[] getColorSettings() {\r
39 return fColorSettings;\r
40 }\r
41 \r
42 public static void setColorSettings(ColorSetting[] colorSettings) {\r
43 fColorSettings = colorSettings;\r
44 ColorSettingsXML.save(COLOR_SETTINGS_PATH_NAME, fColorSettings);\r
45 fireColorSettingsChanged();\r
46 }\r
47 \r
48 public static ColorSetting getColorSetting(TmfEvent event) {\r
49 for (int i = 0; i < fColorSettings.length; i++) {\r
50 ColorSetting colorSetting = fColorSettings[i];\r
51 if (colorSetting.getFilter() != null && colorSetting.getFilter().matches(event)) {\r
52 return colorSetting;\r
53 }\r
54 }\r
55 return DEFAULT_COLOR_SETTING;\r
56 }\r
57 \r
58 public static int getColorSettingPriority(TmfEvent event) {\r
59 for (int i = 0; i < fColorSettings.length; i++) {\r
60 ColorSetting colorSetting = fColorSettings[i];\r
61 if (colorSetting.getFilter() != null && colorSetting.getFilter().matches(event)) {\r
62 return i;\r
63 }\r
64 }\r
65 return PRIORITY_NONE;\r
66 }\r
67\r
68 public static ColorSetting getColorSetting(int priority) {\r
69 if (priority < fColorSettings.length) {\r
70 return fColorSettings[priority];\r
71 }\r
72 return DEFAULT_COLOR_SETTING; \r
73 }\r
74\r
75 public static void addColorSettingsListener(IColorSettingsListener listener) {\r
76 if (! fListeners.contains(listener)) {\r
77 fListeners.add(listener);\r
78 }\r
79 }\r
80 \r
81 public static void removeColorSettingsListener(IColorSettingsListener listener) {\r
82 fListeners.remove(listener);\r
83 }\r
84 \r
85 private static void fireColorSettingsChanged() {\r
86 for (IColorSettingsListener listener : fListeners) {\r
87 listener.colorSettingsChanged(fColorSettings);\r
88 }\r
89 }\r
90}\r
This page took 0.027689 seconds and 5 git commands to generate.