Renamed logic.ui to logic.model
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / SimpleLogicUIStandalone.java
1 package net.mograsim.logic.model;
2
3 import java.util.function.Consumer;
4
5 import net.mograsim.logic.core.timeline.Timeline;
6 import net.mograsim.logic.model.model.ViewModelModifiable;
7 import net.mograsim.logic.model.modeladapter.LogicModelParameters;
8 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
9
10 public class SimpleLogicUIStandalone
11 {
12         public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel)
13         {
14                 LogicModelParameters params = new LogicModelParameters();
15                 params.gateProcessTime = 50;
16                 params.wireTravelTime = 10;
17                 executeVisualisation(setupViewModel, params);
18         }
19
20         public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, LogicModelParameters params)
21         {
22                 // setup view model
23                 ViewModelModifiable viewModel = new ViewModelModifiable();
24                 setupViewModel.accept(viewModel);
25
26                 // convert to logic model
27                 Timeline timeline = ViewLogicModelAdapter.convert(viewModel, params);
28
29                 // initialize UI and executer
30                 LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(viewModel);
31                 LogicExecuter exec = new LogicExecuter(timeline);
32
33                 // run it
34                 exec.startLiveExecution();
35                 ui.run();
36                 exec.stopLiveExecution();
37         }
38
39         private SimpleLogicUIStandalone()
40         {
41                 throw new UnsupportedOperationException("No SimpleLogicUIStandalone instances");
42         }
43 }