static void UpdateReportListViewItemGUI( string wkPath, UpdateReportLineListViewItem item, RowGUIArgs args, float rowHeight, int totalLinesCount, Action onCheckedReportLineChanged, HashSet <UpdateReportLineListViewItem> checkedLines) { for (int visibleColumnIdx = 0; visibleColumnIdx < args.GetNumVisibleColumns(); visibleColumnIdx++) { Rect cellRect = args.GetCellRect(visibleColumnIdx); ErrorsListColumn column = (ErrorsListColumn)args.GetColumn(visibleColumnIdx); UpdateReportListViewItemCellGUI( cellRect, wkPath, item, column, rowHeight, args.selected, args.focused, totalLinesCount, onCheckedReportLineChanged, checkedLines); } }
static void UpdateReportListViewItemCellGUI( Rect rect, string wkPath, UpdateReportLineListViewItem item, ErrorsListColumn column, float rowHeight, bool isSelected, bool isFocused, int totalLinesCount, Action onCheckedReportLineChanged, HashSet <UpdateReportLineListViewItem> checkedLines) { string label = WorkspacePath.GetWorkspaceRelativePath( wkPath, item.ReportLine.ItemPath); bool wasChecked = checkedLines.Contains(item); bool isChecked = DrawTreeViewItem.ForCheckableItemCell( rect, rowHeight, 0, null, null, label, isSelected, isFocused, false, wasChecked); if (wasChecked != isChecked) { UpdateCheckedState(checkedLines, item, isChecked); onCheckedReportLineChanged(); } }
static void RegenerateRows( UpdateReportListView listView, IList reportLines, TreeViewItem rootItem, List <TreeViewItem> rows) { ClearRows(rootItem, rows); if (reportLines.Count == 0) { return; } for (int i = 0; i < reportLines.Count; i++) { UpdateReportLineListViewItem errorListViewItem = new UpdateReportLineListViewItem(i + 1, (ReportLine)reportLines[i]); rootItem.AddChild(errorListViewItem); rows.Add(errorListViewItem); } listView.SetSelection(new List <int> { 1 }); }
static void UpdateCheckedState( HashSet <UpdateReportLineListViewItem> checkedLines, UpdateReportLineListViewItem item, bool isChecked) { if (isChecked) { checkedLines.Add(item); return; } checkedLines.Remove(item); }