Ejemplo n.º 1
0
        public string?GetTrack(ITrain train, Station sta, TrainDirection dir, ArrDep timetableEntry, TrackQuery track)
        {
            var path = new TrainPathData(train.ParentTimetable, train);

            if (!path.ContainsStation(sta))
            {
                return(null);
            }

            var exitRoute = path.GetExitRoute(sta);

            if (track == TrackQuery.Departure)
            {
                return(Fallback(timetableEntry.DepartureTrack,
                                Fallback(timetableEntry.ArrivalTrack,
                                         Fallback(dir == TrainDirection.ti
                            ? sta.DefaultTrackRight.GetValue(exitRoute)
                            : sta.DefaultTrackLeft.GetValue(exitRoute), ""))));
            }

            return(Fallback(timetableEntry.ArrivalTrack,
                            Fallback(timetableEntry.DepartureTrack,
                                     Fallback(dir == TrainDirection.ti
                        ? sta.DefaultTrackRight.GetValue(exitRoute)
                        : sta.DefaultTrackLeft.GetValue(exitRoute), ""))));
        }
Ejemplo n.º 2
0
        public ShuntForm(ArrDep arrDep, Station sta)
        {
            Eto.Serialization.Xaml.XamlReader.Load(this);

            this.arrDep  = arrDep;
            this.station = sta;

            arrivalLabel.Font   = new Font(arrivalLabel.Font.FamilyName, arrivalLabel.Font.Size, FontStyle.Bold);
            departureLabel.Font = new Font(departureLabel.Font.FamilyName, departureLabel.Font.Size, FontStyle.Bold);
            arrivalLabel.Text   = arrivalLabel.Text.Replace("{time}", arrDep.Arrival != default ? arrDep.Arrival.ToShortTimeString() : "-");
            arrivalLabel.Text   = arrivalLabel.Text.Replace("{track}", arrDep.ArrivalTrack);
            departureLabel.Text = departureLabel.Text.Replace("{time}", arrDep.Departure != default ? arrDep.Departure.ToShortTimeString() : "-");
            departureLabel.Text = departureLabel.Text.Replace("{track}", arrDep.DepartureTrack);

            Title = Title.Replace("{station}", station.SName);

            var tracks = sta.Tracks.Select(t => t.Name);

            gridView.AddColumn <ShuntMove, TimeSpan>(s => s.Time, ts => ts.ToShortTimeString(), s => { TimeSpan.TryParse(s, out var res); return(res); }, "Zeit", editable: true);
            gridView.AddDropDownColumn <ShuntMove>(s => s.SourceTrack, tracks, "Startgleis", editable: true);
            gridView.AddDropDownColumn <ShuntMove>(s => s.TargetTrack, tracks, "Zielgleis", editable: true);
            gridView.AddCheckColumn <ShuntMove>(s => s.EmptyAfterwards, "Alle Wagen?", editable: true);

            gridView.SelectedItemsChanged += (s, e) => removeButton.Enabled = gridView.SelectedItem != null;


            this.AddSizeStateHandler();

            shuntBackup = arrDep.ShuntMoves.Select(s => s.Clone <ShuntMove>()).ToList();

            RefreshList();
        }
Ejemplo n.º 3
0
 public DataElement(ITrain tra, Station sta, ArrDep arrDep)
 {
     Train   = tra;
     ArrDeps = new Dictionary <Station, ArrDep>(1)
     {
         [sta] = arrDep
     };
     Station = sta;
 }
Ejemplo n.º 4
0
        public ShuntForm(ITrain train, ArrDep arrDep, Station sta)
        {
            Eto.Serialization.Xaml.XamlReader.Load(this);

            this.arrDep  = arrDep;
            this.station = sta;

            var dir = new NetworkHelper(train.ParentTimetable).GetTrainDirectionAtStation(train, sta);
            var th  = new TrackHelper();

            arrivalLabel.Font   = new Font(arrivalLabel.Font.FamilyName, arrivalLabel.Font.Size, FontStyle.Bold);
            departureLabel.Font = new Font(departureLabel.Font.FamilyName, departureLabel.Font.Size, FontStyle.Bold);

            var arrivalTrack = dir.HasValue ? th.GetTrack(train, sta, dir.Value, arrDep, TrackQuery.Departure) : "-";

            arrivalLabel.Text = arrivalLabel.Text.Replace("{time}", arrDep.Arrival != default ? arrDep.Arrival.ToTimeString() : "-");
            arrivalLabel.Text = arrivalLabel.Text.Replace("{track}", arrivalTrack);

            var departureTrack = dir.HasValue ? th.GetTrack(train, sta, dir.Value, arrDep, TrackQuery.Departure) : "-";

            departureLabel.Text = departureLabel.Text.Replace("{time}", arrDep.Departure != default ? arrDep.Departure.ToTimeString() : "-");
            departureLabel.Text = departureLabel.Text.Replace("{track}", departureTrack);

            Title = Title.Replace("{station}", station.SName);

            var tracks = sta.Tracks.Select(t => t.Name).ToArray();

            gridView.AddColumn <ShuntMove, TimeEntry>(s => s.Time, ts => ts.ToTimeString(), s => { TimeEntry.TryParse(s, out var res); return(res); }, T._("Zeit"), editable: true);
            gridView.AddDropDownColumn <ShuntMove>(s => s.SourceTrack, tracks, T._("Startgleis"), editable: true);
            gridView.AddDropDownColumn <ShuntMove>(s => s.TargetTrack, tracks, T._("Zielgleis"), editable: true);
            gridView.AddCheckColumn <ShuntMove>(s => s.EmptyAfterwards, T._("Alle Wagen?"), editable: true);

            gridView.SelectedItemsChanged += (s, e) => removeButton.Enabled = gridView.SelectedItem != null;

            this.AddSizeStateHandler();

            shuntBackup = arrDep.Copy().ShuntMoves.ToList();

            Shown += (s, e) => RefreshList();
        }