1 package freemarker.eclipse.editors; 2 3 import java.util.HashMap ; 4 import java.util.Iterator ; 5 import java.util.Map ; 6 import java.util.StringTokenizer ; 7 8 import org.eclipse.swt.graphics.Color; 9 import org.eclipse.swt.graphics.RGB; 10 import org.eclipse.swt.widgets.Display; 11 12 import freemarker.eclipse.FreemarkerPlugin; 13 import freemarker.eclipse.preferences.IPreferenceConstants; 14 15 19 public class ColorManager implements IPreferenceConstants { 20 21 protected Map fColorTable = new HashMap (10); 22 23 public void dispose() { 24 Iterator e= fColorTable.values().iterator(); 25 while (e.hasNext()) 26 ((Color) e.next()).dispose(); 27 } 28 29 30 public Color getColor(RGB rgb) { 31 Color color= (Color) fColorTable.get(rgb); 32 if (color == null) { 33 color= new Color(Display.getCurrent(), rgb); 34 fColorTable.put(rgb, color); 35 } 36 return color; 37 } 38 39 public Color getColor(String rgbString) { 40 int red=0, green=0, blue=0; 41 if(null!=rgbString) { 42 StringTokenizer tok = new StringTokenizer (rgbString, ","); 43 if(tok.countTokens() == 3) { 44 red = Integer.parseInt(tok.nextToken()); 45 green = Integer.parseInt(tok.nextToken()); 46 blue = Integer.parseInt(tok.nextToken()); 47 } 48 } 49 return getColor(new RGB(red, green, blue)); 50 } 51 52 public Color getColorFromPreference(String preferenceID) { 53 return getColor(FreemarkerPlugin.getInstance().getPreferenceStore().getString(preferenceID)); 54 } 55 56 } 57 | Popular Tags |