--- /dev/null
+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());
+ }
+}