]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SharedTextColorsNew.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor / SharedTextColorsNew.java
1 package org.simantics.scl.ui.editor;
2
3 import gnu.trove.map.hash.THashMap;
4
5 import org.eclipse.jface.text.source.ISharedTextColors;
6 import org.eclipse.swt.graphics.Color;
7 import org.eclipse.swt.graphics.RGB;
8 import org.eclipse.swt.widgets.Display;
9
10 final public class SharedTextColorsNew implements ISharedTextColors {
11
12     Display display;
13     THashMap<RGB,Color> map = new THashMap<RGB,Color>();
14     
15     public SharedTextColorsNew(Display display) {
16         this.display = display;
17     }
18
19     @Override
20     public Color getColor(RGB rgb) {
21         Color color = map.get(rgb);
22         if(color == null) {
23             color = new Color(display, rgb);
24             map.put(rgb, color);
25         }
26         return color;
27     }
28
29     @Override
30     public void dispose() {
31         for(Color color : map.values())
32             color.dispose();
33         map.clear();
34     }
35 }