Using Builder pattern for CoreModelParameters now
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / SimulationPreview.java
index 746433b..45d5540 100644 (file)
@@ -16,31 +16,30 @@ import net.mograsim.logic.model.model.components.atomic.ModelOrGate;
 import net.mograsim.logic.model.model.wires.ModelWire;
 import net.mograsim.logic.model.model.wires.ModelWireCrossPoint;
 import net.mograsim.logic.model.modeladapter.CoreModelParameters;
+import net.mograsim.logic.model.modeladapter.CoreModelParameters.CoreModelParametersBuilder;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
-import net.mograsim.preferences.Preferences;
+import net.mograsim.logic.model.preferences.RenderPreferences;
+import net.mograsim.plugin.preferences.EclipseRenderPreferences;
 
 public class SimulationPreview implements IThemePreview
 {
        private LogicUICanvas ui;
        private LogicExecuter exec;
-       private Preferences oldPreferences;
-       private Preferences currentThemePreferences;
 
        @Override
        @SuppressWarnings("unused")
        public void createControl(Composite parent, ITheme currentTheme)
        {
-               oldPreferences = Preferences.current();
-
-               currentThemePreferences = new EclipsePreferences(currentTheme, MograsimActivator.instance().getPreferenceStore());
-               // TODO this will change the global preferences; so if another LogicUICanvas redraws, it will use the "new" colors too.
-               Preferences.setPreferences(currentThemePreferences);
+               RenderPreferences currentThemeRenderPrefs = new EclipseRenderPreferences(currentTheme,
+                               MograsimActivator.instance().getPreferenceStore());
 
                LogicModelModifiable model = new LogicModelModifiable();
-               CoreModelParameters params = new CoreModelParameters();
-               params.gateProcessTime = 50;
-               params.hardcodedComponentProcessTime = params.gateProcessTime * 5;
-               params.wireTravelTime = 10;
+
+               CoreModelParametersBuilder paramsBuilder = new CoreModelParametersBuilder();
+               paramsBuilder.gateProcessTime = 50;
+               paramsBuilder.hardcodedComponentProcessTime = paramsBuilder.gateProcessTime * 5;
+               paramsBuilder.wireTravelTime = 10;
+               CoreModelParameters params = paramsBuilder.build();
 
                ModelManualSwitch rIn = new ModelManualSwitch(model, 1);
                rIn.moveTo(10, 10);
@@ -86,7 +85,7 @@ public class SimulationPreview implements IThemePreview
 
                rIn.clicked(0, 0);
 
-               ui = new LogicUICanvas(parent, SWT.NONE, model);
+               ui = new LogicUICanvas(parent, SWT.NONE, model, currentThemeRenderPrefs);
 
                ui.zoom(3.5, 10, 10);
                exec.startLiveExecution();
@@ -98,7 +97,5 @@ public class SimulationPreview implements IThemePreview
        public void dispose()
        {
                exec.stopLiveExecution();
-               if (Preferences.current() == currentThemePreferences)
-                       Preferences.setPreferences(oldPreferences);
        }
 }