]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/ColorDescriptorUtil.java
Possibility to define label color decorator rules in SCL
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / ColorDescriptorUtil.java
diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/ColorDescriptorUtil.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/ColorDescriptorUtil.java
new file mode 100644 (file)
index 0000000..3f02f54
--- /dev/null
@@ -0,0 +1,23 @@
+package org.simantics.modeling;
+
+import org.eclipse.jface.resource.ColorDescriptor;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Display;
+import org.simantics.scl.runtime.tuple.Tuple3;
+
+public class ColorDescriptorUtil {
+       public static ColorDescriptor colorDescriptor(Tuple3 color) {
+               return ColorDescriptor.createFrom(new RGB((int)(((double)color.c0) * 255), (int)(((double)color.c1) * 255), (int)(((double)color.c2) * 255)));
+       }
+       
+       public static Tuple3 colorDescriptorAsTuple3(ColorDescriptor descriptor) {
+               Color color = ((ColorDescriptor)descriptor).createColor(Display.getDefault());
+               return new Tuple3(color.getRed(), color.getGreen(), color.getBlue());
+       }
+       
+       public synchronized static String colorDescriptorAsHex(ColorDescriptor descriptor) {
+               Color color = ((ColorDescriptor)descriptor).createColor(Display.getDefault());
+               return String.format("#%02x%02x%02x", color.getRed(), color.getGreen(), color.getBlue());
+       }
+}