Exemplo n.º 1
0
        private void __ShowLocalOrders()
        {
            var Window = new LocalOrdersView(SelectedItem.TrainNumber, SelectedItem.Station.ShortSymbol);
            var VM     = new LocalOrdersViewModel(SelectedItem.Schedule);

            OnOpenWindow(VM, Window);
        }
Exemplo n.º 2
0
        private void __Station_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var SenderVM = sender as TrainScheduleStationViewModel;

            if (SenderVM == null)
            {
                return;
            }

            if (e.PropertyName == "JustifyDelay" && m_LiveTrain != null)
            {
                var Window = new DelayJustificationView(CurrentTrain.Number);
                var VM     = new DelayJustificationViewModel(m_LiveTrain);

                OnOpenWindow(VM, Window);
            }

            if (e.PropertyName == "ShowLocalOrders")
            {
                var Window = new LocalOrdersView(CurrentTrain.Number, SenderVM.CurrentSchedule.Station.ShortSymbol);
                var VM     = new LocalOrdersViewModel(SenderVM.CurrentSchedule);

                OnOpenWindow(VM, Window);
            }
        }
Exemplo n.º 3
0
        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;
            }
        }