Now using preference system in plugin.core
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / views / LogicUIPart.java
index aab85c8..61e0b38 100644 (file)
@@ -2,11 +2,17 @@ package net.mograsim.plugin.views;
 
 import javax.inject.Inject;
 
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.jface.resource.ColorRegistry;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.statushandlers.StatusManager;
 import org.eclipse.ui.themes.ITheme;
 
 import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasUserInput;
@@ -21,6 +27,9 @@ import net.mograsim.logic.ui.model.components.mi.nandbased.am2901.GUIAm2901;
 import net.mograsim.logic.ui.model.wires.GUIWire;
 import net.mograsim.logic.ui.modeladapter.LogicModelParameters;
 import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter;
+import net.mograsim.preferences.ColorDefinition;
+import net.mograsim.preferences.ColorDefinition.BuiltInColor;
+import net.mograsim.preferences.Preferences;
 
 public class LogicUIPart extends ViewPart
 {
@@ -40,6 +49,33 @@ public class LogicUIPart extends ViewPart
        @Override
        public void createPartControl(Composite parent)
        {
+               // set preferences
+               Preferences.setPreferences(new Preferences()
+               {
+                       @Override
+                       public ColorDefinition getColorDefinition(String name)
+                       {
+                               RGB rgb = getColorRegistry().getRGB(name);
+                               if (rgb == null)
+                               {
+                                       StatusManager.getManager().handle(new Status(IStatus.ERROR, "net.mograsim.plugin.core", "No color for name " + name));
+                                       return new ColorDefinition(BuiltInColor.COLOR_BLACK);
+                               }
+                               return new ColorDefinition(rgb.red, rgb.green, rgb.blue);
+                       }
+
+                       @Override
+                       public Color getColor(String name)
+                       {
+                               return getColorRegistry().get(name);
+                       }
+
+                       private ColorRegistry getColorRegistry()
+                       {
+                               return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
+                       }
+               });
+
                // setup view model
                ViewModelModifiable viewModel = new ViewModelModifiable();
                createTestbench(viewModel);