1 package net.mograsim.plugin;
3 import org.eclipse.core.runtime.IStatus;
4 import org.eclipse.core.runtime.Status;
5 import org.eclipse.jface.preference.IPreferenceStore;
6 import org.eclipse.jface.resource.ColorRegistry;
7 import org.eclipse.swt.graphics.Color;
8 import org.eclipse.swt.graphics.RGB;
9 import org.eclipse.ui.statushandlers.StatusManager;
10 import org.eclipse.ui.themes.ITheme;
12 import net.mograsim.preferences.ColorDefinition;
13 import net.mograsim.preferences.DefaultPreferences;
14 import net.mograsim.preferences.Preferences;
16 public class EclipsePreferences extends Preferences
18 private final ITheme theme;
19 private final IPreferenceStore prefs;
20 private final Preferences defaultPrefs;
22 public EclipsePreferences(ITheme theme, IPreferenceStore prefs)
26 this.defaultPrefs = new DefaultPreferences();
30 public boolean getBoolean(String name)
32 prefs.setDefault(name, defaultPrefs.getBoolean(name));
33 return prefs.getBoolean(name);
37 public int getInt(String name)
39 prefs.setDefault(name, defaultPrefs.getInt(name));
40 return prefs.getInt(name);
44 public double getDouble(String name)
46 prefs.setDefault(name, defaultPrefs.getDouble(name));
47 return prefs.getDouble(name);
51 public ColorDefinition getColorDefinition(String name)
53 RGB rgb = getColorRegistry().getRGB(name);
56 StatusManager.getManager().handle(new Status(IStatus.ERROR, "net.mograsim.plugin.core", "No color for name " + name));
59 return new ColorDefinition(rgb.red, rgb.green, rgb.blue);
63 public Color getColor(String name)
65 return getColorRegistry().get(name);
68 private ColorRegistry getColorRegistry()
70 return theme.getColorRegistry();