X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2FSimpleLogicUIStandalone.java;fp=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2FSimpleLogicUIStandalone.java;h=0573aa905495cfa3602fd73ff08d246e91dded36;hb=29cfa7eb267542506beb197e54af8aa3f642c3fb;hp=0000000000000000000000000000000000000000;hpb=08e8b43a28e078ec84cff02edf9d640bcbad2a35;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/SimpleLogicUIStandalone.java b/LogicUI/src/era/mi/gui/SimpleLogicUIStandalone.java new file mode 100644 index 00000000..0573aa90 --- /dev/null +++ b/LogicUI/src/era/mi/gui/SimpleLogicUIStandalone.java @@ -0,0 +1,38 @@ +package era.mi.gui; + +import java.util.function.Consumer; + +import era.mi.gui.model.ViewModel; +import era.mi.gui.modeladapter.LogicModelParameters; +import era.mi.gui.modeladapter.ViewLogicModelAdapter; +import era.mi.logic.timeline.Timeline; + +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