Renamed logic.ui to logic.model
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / SimpleLogicUIStandalone.java
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/SimpleLogicUIStandalone.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/SimpleLogicUIStandalone.java
new file mode 100644 (file)
index 0000000..23252d4
--- /dev/null
@@ -0,0 +1,43 @@
+package net.mograsim.logic.model;
+
+import java.util.function.Consumer;
+
+import net.mograsim.logic.core.timeline.Timeline;
+import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.modeladapter.LogicModelParameters;
+import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
+
+public class SimpleLogicUIStandalone
+{
+       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel)
+       {
+               LogicModelParameters params = new LogicModelParameters();
+               params.gateProcessTime = 50;
+               params.wireTravelTime = 10;
+               executeVisualisation(setupViewModel, params);
+       }
+
+       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, LogicModelParameters params)
+       {
+               // setup view model
+               ViewModelModifiable viewModel = new ViewModelModifiable();
+               setupViewModel.accept(viewModel);
+
+               // convert to logic model
+               Timeline timeline = ViewLogicModelAdapter.convert(viewModel, params);
+
+               // initialize UI and executer
+               LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(viewModel);
+               LogicExecuter exec = new LogicExecuter(timeline);
+
+               // run it
+               exec.startLiveExecution();
+               ui.run();
+               exec.stopLiveExecution();
+       }
+
+       private SimpleLogicUIStandalone()
+       {
+               throw new UnsupportedOperationException("No SimpleLogicUIStandalone instances");
+       }
+}
\ No newline at end of file