[WIP] CFV Refactor
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / internal / provisional / tmf / ui / views / timegraph2 / swtjfx / JfxColorFactory.java
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/provisional/tmf/ui/views/timegraph2/swtjfx/JfxColorFactory.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/provisional/tmf/ui/views/timegraph2/swtjfx/JfxColorFactory.java
new file mode 100644 (file)
index 0000000..3fc6547
--- /dev/null
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir
+ *
+ * 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
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.internal.provisional.tmf.ui.views.timegraph2.swtjfx;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.eclipse.tracecompass.internal.provisional.tmf.core.views.timegraph2.ColorDefinition;
+
+import javafx.scene.paint.Color;
+
+final class JfxColorFactory {
+
+    private JfxColorFactory() {}
+
+    private static final Map<ColorDefinition, Color> COLOR_MAP = new ConcurrentHashMap<>();
+
+    /**
+     * Instantiate a {@link Color} from a {@link ColorDefinition} object.
+     *
+     * @param colorDef
+     *            The ColorDefinition
+     * @return The Color object
+     */
+    public static Color getColorFromDef(ColorDefinition colorDef) {
+        Color color = COLOR_MAP.get(colorDef);
+        if (color == null) {
+            color = Color.rgb(colorDef.fRed, colorDef.fGreen, colorDef.fBlue, (double) colorDef.fAlpha / (double) ColorDefinition.MAX);
+            COLOR_MAP.put(colorDef, color);
+        }
+        return color;
+    }
+
+}
This page took 0.024159 seconds and 5 git commands to generate.