public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row) { // Get the cell view NSView cellview = tableView.MakeView(_cellIdentifier, this); // Get the data for the row ScreeningsPlan plan = _dataSource.Plan; DateTime day = plan.CurrDay; Screen screen = plan.CurrDayScreens[(int)row]; // Setup view based on the column selected switch (tableColumn.Identifier) { case "Screens": NSTextField label = (NSTextField)cellview; PopulateScreens(ref label); label.StringValue = screen.ToString(); return(label); case "Screenings": NSClipView clipview = (NSClipView)cellview; PopulateScreenings(ref clipview); _screeningsView.DrawScreenings(clipview, plan, day, screen); return(clipview); } return(cellview); }
public void DrawScreenings(NSClipView view, ScreeningsPlan plan, DateTime day, Screen screen) { DisposeSubViews(view); var currScreening = plan.CurrScreening; var elegableScreenings = plan.ScreenScreenings[day][screen] .Where(s => s.Film.FilmInfo.CombinationProgramIds.Count == 0); foreach (var screening in elegableScreenings) { _controller.UpdateWarning(screening); _labelLeft = _superView.NumberOfPixelsFromTime(screening.StartTime); _labelWidth = _superView.NumberOfPixelsFromDuration(screening.Duration); CGRect rect = new CGRect(_labelLeft, _labelTop, _labelWidth, _labelHeight); var screeningControl = new ScreeningControl(rect, screening); screeningControl.Selected = screening == currScreening; screeningControl.ScreeningSelected += (s, e) => SegueToScreeningWindow((ScreeningControl)s); view.AddSubview(screeningControl); _controller.AddScreeningControl(screening, screeningControl); } }
public void DrawCurrDay(ScreeningsPlan plan) { _screensColumn.Title = Screening.DayString(plan.CurrDay); }
public void DrawHeaders(ScreeningsPlan plan) { HeadersView.DrawCurrDay(plan); HeadersView.DrawHours(); }