public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row) { var data = owner.PropsDataSource.data [(int)row]; var paintInfo = owner.ViewModel.OnPropertyCellPaint((int)row); if (tableColumn == owner.PropKeyColumn) { var viewId = "name"; var view = (NSTextField)tableView.MakeView(viewId, this); if (view == null) { view = MakeLabel(viewId); } if (paintInfo.AddLeftPadding) { view.StringValue = " " + data.Key; } else { view.StringValue = data.Key; } return(view); } else if (tableColumn == owner.PropValueColumn) { if (paintInfo.PaintAsLink) { var viewId = "link"; var view = (NSLinkLabel)tableView.MakeView(viewId, this); if (view == null) { view = new NSLinkLabel() { Identifier = viewId, RespectInteriorBackgroundStyle = true } } ; view.StringValue = data.Value.ToString(); view.LinkClicked = (s, e) => owner.ViewModel.OnPropertyCellClicked((int)row); return(view); } else { var viewId = "val"; var view = (NSTextField)tableView.MakeView(viewId, this); if (view == null) { view = MakeLabel(viewId); } view.StringValue = data.Value.ToString(); return(view); } } return(null); }
void UpdateActionLink(NSLinkLabel lbl, string value, ControlData.StatusColor color, bool enabled, ViewControlId id) { lbl.SetAttributedContents(value); lbl.TextColor = MapColor(color); lbl.IsEnabled = enabled; if (lbl.LinkClicked == null) { lbl.LinkClicked = (s, e) => { if (!string.IsNullOrEmpty(e.Link.Tag as string)) { var flags = ClickFlags.None; // todo: flags viewModel.OnActionClick((string)e.Link.Tag, id, flags); } }; } }
public ControlsSet(NSLinkLabel content, NSProgressIndicator progress) { this.content = content; this.progress = progress; }