public static void Main() { using (var fr = new FlowRuntime()) { fr.Message += Console.WriteLine; fr.UnhandledException += ex => MessageBox.Show(ex.ToString()); var mainWindow = new MainWindow(); var viewModel = new MainWindowVM(); mainWindow.DataContext = viewModel; var mapper = new Mapper(viewModel); var metronom = new Metronom(new Play()); var stopuhr = new Stopuhr(); var pausenuhr = new Pausenuhr(); var aufgabentimer = new Timer("aufgaben_timer"); var pausentimer = new Timer("pausen_timer"); var uebungsdauertimer = new Timer("uebungsdauer_timer"); var repository = new Repository(); var frc = new FlowRuntimeConfiguration(); frc.AddStreamsFrom("metronom.logik.flows.root.flow", typeof(Metronom).Assembly); frc.AddAction<string>("aufgabe_laden", repository.Naechste_Aufgabe) .AddAction<Metrum>("metrum_laden", repository.Naechstes_Metrum) .AddAction("ende_der_aufgaben", repository.Ende_der_Aufgaben) .AddAction<string>("aufgabe_anzeigen", mapper.Aufgabe_anzeigen) .AddOperation(aufgabentimer) .AddFunc<Metrum, int>("timer_konfigurieren", metronom.Timer_konfigurieren) .AddAction("metronom_click", metronom.Click) .AddFunc("uebungsdauer_timer_konfigurieren", stopuhr.Timer_konfigurieren) .AddFunc("uebungsdauer_ermitteln", stopuhr.Uebungsdauer_ermitteln) .AddOperation(uebungsdauertimer) .AddAction<string>("uebungsdauer_anzeigen", mapper.Uebungsdauer_anzeigen) .AddAction<string>("restdauer_anzeigen", mapper.Restdauer_anzeigen) .AddAction("aufgabentimer_ausschalten", aufgabentimer.Stop) .AddFunc("pausentimer_konfigurieren", pausenuhr.Pausentimer_konfigurieren) .AddAction("pausentimer_ausschalten", pausentimer.Stop) .AddFunc("restdauer_ermitteln", pausenuhr.Restdauer_ermitteln) .AddOperation(pausentimer) .AddAction<int>("restdauer_pruefen", pausenuhr.Restdauer_pruefen) .AddAction("uebungsdauer_timer_ausschalten", uebungsdauertimer.Stop) ; fr.Configure(frc); mainWindow.Start += fr.CreateEventProcessor(".start"); mainWindow.Pause += fr.CreateEventProcessor(".pause"); var app = new Application { MainWindow = mainWindow }; app.Run(mainWindow); } }
public Mapper(MainWindowVM mainWindowVm) { this.mainWindowVm = mainWindowVm; }