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);
            }
        }
Пример #3
0
 public void DrawCurrDay(ScreeningsPlan plan)
 {
     _screensColumn.Title = Screening.DayString(plan.CurrDay);
 }
Пример #4
0
 public void DrawHeaders(ScreeningsPlan plan)
 {
     HeadersView.DrawCurrDay(plan);
     HeadersView.DrawHours();
 }