1 package net.mograsim.plugin;
3 import org.eclipse.core.runtime.IStatus;
4 import org.eclipse.core.runtime.Status;
5 import org.eclipse.jface.resource.ColorRegistry;
6 import org.eclipse.swt.graphics.Color;
7 import org.eclipse.swt.graphics.RGB;
8 import org.eclipse.ui.statushandlers.StatusManager;
9 import org.eclipse.ui.themes.ITheme;
11 import net.mograsim.preferences.ColorDefinition;
12 import net.mograsim.preferences.DefaultPreferences;
13 import net.mograsim.preferences.Preferences;
15 // TODO proper getInt/getDouble implementation, maybe via own preferences page?
16 public class ThemePreferences extends Preferences
18 private final ITheme theme;
20 public ThemePreferences(ITheme theme)
26 public boolean getBoolean(String name)
28 return new DefaultPreferences().getBoolean(name);
32 public int getInt(String name)
34 return new DefaultPreferences().getInt(name);
38 public double getDouble(String name)
40 return new DefaultPreferences().getDouble(name);
44 public ColorDefinition getColorDefinition(String name)
46 RGB rgb = getColorRegistry().getRGB(name);
49 StatusManager.getManager().handle(new Status(IStatus.ERROR, "net.mograsim.plugin.core", "No color for name " + name));
52 return new ColorDefinition(rgb.red, rgb.green, rgb.blue);
56 public Color getColor(String name)
58 return getColorRegistry().get(name);
61 private ColorRegistry getColorRegistry()
63 return theme.getColorRegistry();