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), "")))); }
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(); }
public DataElement(ITrain tra, Station sta, ArrDep arrDep) { Train = tra; ArrDeps = new Dictionary <Station, ArrDep>(1) { [sta] = arrDep }; Station = sta; }
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(); }