Restructured the Preferences system
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / MograsimActivator.java
1 package net.mograsim.plugin;
2
3 import org.eclipse.jface.preference.IPreferenceStore;
4 import org.eclipse.ui.PlatformUI;
5 import org.eclipse.ui.plugin.AbstractUIPlugin;
6 import org.eclipse.ui.themes.ITheme;
7
8 import net.mograsim.logic.model.preferences.RenderPreferences;
9 import net.mograsim.machine.MachineRegistry;
10 import net.mograsim.plugin.preferences.EclipsePluginPreferences;
11 import net.mograsim.plugin.preferences.EclipseRenderPreferences;
12 import net.mograsim.plugin.preferences.PluginPreferences;
13 import net.mograsim.preferences.Preferences;
14
15 public final class MograsimActivator extends AbstractUIPlugin
16 {
17         public static final String PLUGIN_ID = "net.mograsim.plugin.core";
18
19         private static MograsimActivator instance;
20
21         public static MograsimActivator instance()
22         {
23                 if (instance == null)
24                         throw new IllegalStateException("MograsimActivator not yet created!");
25                 return instance;
26         }
27
28         private final RenderPreferences renderPrefs;
29         private final PluginPreferences pluginPrefs;
30
31         public MograsimActivator()
32         {
33                 if (instance != null)
34                         throw new IllegalStateException("MograsimActivator already created!");
35                 instance = this;
36
37                 MachineRegistry.initialize();
38                 ITheme currentTheme = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
39                 IPreferenceStore preferenceStore = getPreferenceStore();
40                 renderPrefs = new EclipseRenderPreferences(currentTheme, preferenceStore);
41                 pluginPrefs = new EclipsePluginPreferences(currentTheme, preferenceStore);
42         }
43
44         public RenderPreferences getRenderPrefs()
45         {
46                 return renderPrefs;
47         }
48
49         public Preferences getPluginPrefs()
50         {
51                 return pluginPrefs;
52         }
53 }