Improved usage of CoreModelParametersBuilder
[Mograsim.git] / plugins / net.mograsim.logic.model / src / net / mograsim / logic / model / SimpleLogicUIStandalone.java
index 03d0335..20bfccc 100644 (file)
@@ -5,7 +5,9 @@ import java.util.function.Consumer;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.model.model.LogicModelModifiable;
 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.logic.model.preferences.DefaultRenderPreferences;
 
 public class SimpleLogicUIStandalone
 {
@@ -16,10 +18,11 @@ public class SimpleLogicUIStandalone
 
        public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel, Consumer<VisualisationObjects> beforeRun)
        {
-               CoreModelParameters params = new CoreModelParameters();
-               params.gateProcessTime = 50;
-               params.wireTravelTime = 10;
-               executeVisualisation(setupLogicModel, params, beforeRun);
+               CoreModelParametersBuilder paramsBuilder = CoreModelParameters.builder();
+               paramsBuilder.gateProcessTime = 50;
+               paramsBuilder.hardcodedComponentProcessTime = paramsBuilder.gateProcessTime * 5;
+               paramsBuilder.wireTravelTime = 10;
+               executeVisualisation(setupLogicModel, paramsBuilder.build(), beforeRun);
        }
 
        public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel, CoreModelParameters params)
@@ -38,13 +41,14 @@ public class SimpleLogicUIStandalone
                Timeline timeline = LogicCoreAdapter.convert(logicModel, params);
 
                // initialize UI and executer
-               LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(logicModel);
+               LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(logicModel, new DefaultRenderPreferences());
                LogicExecuter exec = new LogicExecuter(timeline);
 
                if (beforeRun != null)
                        beforeRun.accept(new VisualisationObjects(logicModel, timeline, ui, exec));
 
                // run it
+               exec.setSpeedFactor(1);
                exec.startLiveExecution();
                ui.run();
                exec.stopLiveExecution();