private void __ShowTrainScheduleWindow() { if (!TrainScheduleNumber.HasValue) { return; } if (m_CurrentArea.Trains.ContainsKey(TrainScheduleNumber.Value)) { var Train = m_CurrentArea.Trains[TrainScheduleNumber.Value]; var Window = new TrainScheduleView(TrainScheduleNumber.Value); var VM = new TrainScheduleViewModel(Window.Dispatcher, Train, m_CurrentArea); __OpenChildWindow(Window, VM); } else if (m_CurrentArea.LiveTrains.ContainsKey(TrainScheduleNumber.Value)) { var Train = m_CurrentArea.LiveTrains[TrainScheduleNumber.Value]; var Window = new TrainScheduleView(TrainScheduleNumber.Value); var VM = new TrainScheduleViewModel(Window.Dispatcher, Train.Train, m_CurrentArea); __OpenChildWindow(Window, VM); } else { MessageBox.Show(String.Format("Unbekannte Zugnummer: {0}", TrainScheduleNumber), "Zuglauf", MessageBoxButton.OK, MessageBoxImage.Warning); } IsTrainScheduleDropDownOpen = false; }
private void __ShowTrainSchedule() { var Window = new TrainScheduleView(SelectedItem.TrainNumber); var VM = new TrainScheduleViewModel(Window.Dispatcher, SelectedItem.CurrentTrain.Train, SelectedItem.Station.ESTW.Area); OnOpenWindow(VM, Window); }
private void __RowDoubleClick() { if (SelectedItem == null) { return; } var Window = new TrainScheduleView(SelectedItem.TrainNumber); var VM = new TrainScheduleViewModel(Window.Dispatcher, SelectedItem.CurrentTrain, CurrentStation.ESTW.Area); OnOpenWindow(VM, Window); }
private void __OpenTrainSchedule(int trainNumber) { var area = CurrentSchedule.Station.ESTW.Area; if (!area.Trains.ContainsKey(trainNumber)) { return; } var Window = new TrainScheduleView(trainNumber); var VM = new TrainScheduleViewModel(Window.Dispatcher, area.Trains[trainNumber], area); OnOpenWindow(VM, Window); }
private void __Open() { if (!__CheckForSaving()) { return; } var Dialog = new OpenFileDialog(); Dialog.Filter = "LeiBIT-Dateien|*.leibit|Alle Dateien|*.*"; if (Dialog.ShowDialog() == true) { var Filename = Dialog.FileName; if (Filename.IsNullOrWhiteSpace()) { MessageBox.Show("Bitte wählen Sie eine Datei aus.", "Hinweis", MessageBoxButton.OK, MessageBoxImage.Information); return; } var OpenResult = m_SerializationBll.Open(Filename); if (!OpenResult.Succeeded) { ShowMessage(OpenResult); return; } __CleanUp(); __Initialize(OpenResult.Result.Area); var Stations = OpenResult.Result.Area.ESTWs.SelectMany(e => e.Stations); foreach (var SerializedStation in OpenResult.Result.VisibleStations) { var Station = Stations.FirstOrDefault(s => s.ESTW.Id == SerializedStation.EstwId && s.ShortSymbol == SerializedStation.ShortSymbol); Runtime.VisibleStations.AddIfNotNull(Station); } foreach (var SerializedWindow in OpenResult.Result.Windows) { ChildWindow Window; ChildWindowViewModelBase ViewModel; int TrainNumber; string StationShortSymbol; switch (SerializedWindow.Type) { case eChildWindowType.DelayJustification: TrainNumber = (int)SerializedWindow.Tag; if (m_CurrentArea.LiveTrains.ContainsKey(TrainNumber)) { Window = new DelayJustificationView(TrainNumber); ViewModel = new DelayJustificationViewModel(m_CurrentArea.LiveTrains[TrainNumber]); break; } else { continue; } case eChildWindowType.ESTWSelection: Window = new ESTWSelectionView(); ViewModel = new ESTWSelectionViewModel(Window.Dispatcher); break; case eChildWindowType.Settings: Window = new SettingsView(); ViewModel = new SettingsViewModel(Areas); break; case eChildWindowType.TimeTable: StationShortSymbol = SerializedWindow.Tag as string; if (StationShortSymbol.IsNullOrWhiteSpace()) { continue; } var Station = Stations.FirstOrDefault(s => s.ShortSymbol == StationShortSymbol && s.ScheduleFile.IsNotNullOrEmpty()); if (Station == null) { continue; } Window = new TimeTableView(StationShortSymbol); ViewModel = new TimeTableViewModel(Window.Dispatcher, Station); break; case eChildWindowType.TrainProgressInformation: Window = new TrainProgressInformationView(); ViewModel = new TrainProgressInformationViewModel(Window.Dispatcher); break; case eChildWindowType.TrainSchedule: TrainNumber = (int)SerializedWindow.Tag; if (m_CurrentArea.Trains.ContainsKey(TrainNumber)) { Window = new TrainScheduleView(TrainNumber); ViewModel = new TrainScheduleViewModel(Window.Dispatcher, m_CurrentArea.Trains[TrainNumber], m_CurrentArea); break; } else { continue; } case eChildWindowType.LocalOrders: var Tag = (KeyValuePair <int, string>)SerializedWindow.Tag; if (m_CurrentArea.Trains.ContainsKey(Tag.Key)) { var Schedule = m_CurrentArea.Trains[Tag.Key].Schedules.FirstOrDefault(s => s.Station.ShortSymbol == Tag.Value); if (Schedule == null) { continue; } Window = new LocalOrdersView(Tag.Key, Tag.Value); ViewModel = new LocalOrdersViewModel(Schedule); break; } else { continue; } case eChildWindowType.SystemState: Window = new SystemStateView(); ViewModel = new SystemStateViewModel(Window.Dispatcher); break; default: continue; } Window.Width = SerializedWindow.Width; Window.Height = SerializedWindow.Height; Window.PositionX = SerializedWindow.PositionX; Window.PositionY = SerializedWindow.PositionY; __OpenChildWindow(Window, ViewModel); } m_CurrentFilename = Filename; } }