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