The user no longer has to click on "Apply" to see changes in the preview
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / ThemePreferences.java
1 package net.mograsim.plugin;
2
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;
10
11 import net.mograsim.preferences.ColorDefinition;
12 import net.mograsim.preferences.Preferences;
13
14 public class ThemePreferences extends Preferences
15 {
16         private final ITheme theme;
17
18         public ThemePreferences(ITheme theme)
19         {
20                 this.theme = theme;
21         }
22
23         @Override
24         public ColorDefinition getColorDefinition(String name)
25         {
26                 RGB rgb = getColorRegistry().getRGB(name);
27                 if (rgb == null)
28                 {
29                         StatusManager.getManager().handle(new Status(IStatus.ERROR, "net.mograsim.plugin.core", "No color for name " + name));
30                         return null;
31                 }
32                 return new ColorDefinition(rgb.red, rgb.green, rgb.blue);
33         }
34
35         @Override
36         public Color getColor(String name)
37         {
38                 return getColorRegistry().get(name);
39         }
40
41         private ColorRegistry getColorRegistry()
42         {
43                 return theme.getColorRegistry();
44         }
45 }