X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2FSimpleLogicUIStandalone.java;fp=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2FSimpleLogicUIStandalone.java;h=aa1dd57abe452eaf8aade236e6c45f396c5d5087;hb=07faf07e3acb8b2afdc2bf65a46bc868faaed0f8;hp=0000000000000000000000000000000000000000;hpb=0009789a8df6b8d4562b6e1cbfa75102a7516ea8;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/SimpleLogicUIStandalone.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/SimpleLogicUIStandalone.java new file mode 100644 index 00000000..aa1dd57a --- /dev/null +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/SimpleLogicUIStandalone.java @@ -0,0 +1,38 @@ +package net.mograsim.logic.ui; + +import java.util.function.Consumer; + +import net.mograsim.logic.core.timeline.Timeline; +import net.mograsim.logic.ui.model.ViewModel; +import net.mograsim.logic.ui.modeladapter.LogicModelParameters; +import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter; + +public class SimpleLogicUIStandalone +{ + public static void executeVisualisation(Consumer setupViewModel) + { + // setup view model + ViewModel viewModel = new ViewModel(); + setupViewModel.accept(viewModel); + + // convert to logic model + LogicModelParameters params = new LogicModelParameters(); + params.gateProcessTime = 50; + params.wireTravelTime = 10; + 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