X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.ui%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fui%2FSharedTextColors.java;fp=bundles%2Forg.simantics.document.ui%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fui%2FSharedTextColors.java;h=4856eb12ab4cc8af5f2b15ebc036abfd0978f561;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git 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 index 000000000..4856eb12a --- /dev/null +++ b/bundles/org.simantics.document.ui/src/org/simantics/document/ui/SharedTextColors.java @@ -0,0 +1,35 @@ +package org.simantics.document.ui; + +import gnu.trove.map.hash.THashMap; + +import org.eclipse.jface.text.source.ISharedTextColors; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.widgets.Display; + +final public class SharedTextColors implements ISharedTextColors { + + Display display; + THashMap map = new THashMap(); + + public SharedTextColors(Display display) { + this.display = display; + } + + @Override + public Color getColor(RGB rgb) { + Color color = map.get(rgb); + if(color == null) { + color = new Color(display, rgb); + map.put(rgb, color); + } + return color; + } + + @Override + public void dispose() { + for(Color color : map.values()) + color.dispose(); + map.clear(); + } +} \ No newline at end of file