]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.ui/src/org/simantics/document/ui/SharedTextColors.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.ui / src / org / simantics / document / ui / SharedTextColors.java
diff --git a/bundles/org.simantics.document.ui/src/org/simantics/document/ui/SharedTextColors.java b/bundles/org.simantics.document.ui/src/org/simantics/document/ui/SharedTextColors.java
new file mode 100644 (file)
index 0000000..4856eb1
--- /dev/null
@@ -0,0 +1,35 @@
+package org.simantics.document.ui;\r
+\r
+import gnu.trove.map.hash.THashMap;\r
+\r
+import org.eclipse.jface.text.source.ISharedTextColors;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.RGB;\r
+import org.eclipse.swt.widgets.Display;\r
+\r
+final public class SharedTextColors implements ISharedTextColors {\r
+\r
+    Display display;\r
+    THashMap<RGB,Color> map = new THashMap<RGB,Color>();\r
+    \r
+    public SharedTextColors(Display display) {\r
+        this.display = display;\r
+    }\r
+\r
+    @Override\r
+    public Color getColor(RGB rgb) {\r
+        Color color = map.get(rgb);\r
+        if(color == null) {\r
+            color = new Color(display, rgb);\r
+            map.put(rgb, color);\r
+        }\r
+        return color;\r
+    }\r
+\r
+    @Override\r
+    public void dispose() {\r
+        for(Color color : map.values())\r
+            color.dispose();\r
+        map.clear();\r
+    }\r
+}
\ No newline at end of file