ListViewItem MakeListViewItem(FindResult findResult) { var listViewItem = new ListViewItem(findResult.LocationName) { Tag = findResult }; listViewItem.SubItems.AddRange(new [] { findResult.LocationType, findResult.FindMatch.DisplayText, }); if (!findResult.IsValid) { listViewItem.Font = new Font(listView.Font, FontStyle.Strikeout); } return listViewItem; }
public void SetReplicateIndex(int replicateIndex) { _pendingFindResult = null; if (replicateIndex == GetReplicateIndex()) { return; } for (int iRow = 0; iRow < BindingListSource.Count; iRow++) { if (replicateIndex == GetReplicateIndex(BindingListSource[iRow] as RowItem)) { BindingListSource.Position = iRow; } } }
private void boundDataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { if (null != _pendingFindResult) { var pendingFindResult = _pendingFindResult; _pendingFindResult = null; BeginInvoke(new Action<FindResult>(HighlightFindResult), pendingFindResult); } }
public void HighlightFindResult(FindResult findResult) { if (!IsComplete) { _pendingFindResult = findResult; return; } var bookmarkEnumerator = BookmarkEnumerator.TryGet(_dataSchema.Document, findResult.Bookmark); if (bookmarkEnumerator == null) { return; } var chromInfo = bookmarkEnumerator.CurrentChromInfo; if (chromInfo == null) { return; } int? iRowMatch = null; for (int iRow = 0; iRow < BindingListSource.Count; iRow++) { var rowItem = BindingListSource[iRow] as RowItem; if (rowItem == null) { continue; } var replicate = rowItem.Value as Replicate; if (replicate != null) { if (replicate.Files.Any(file => ReferenceEquals(file.ChromFileInfoId, chromInfo.FileId))) { iRowMatch = iRow; break; } } var result = rowItem.Value as Result; if (null != result) { if (ReferenceEquals(result.GetResultFile().ChromFileInfoId, chromInfo.FileId)) { iRowMatch = iRow; break; } } } if (!iRowMatch.HasValue) { return; } BindingListSource.Position = iRowMatch.Value; DataGridViewColumn column; if (findResult.FindMatch.Note) { column = FindColumn(PropertyPath.Root.Property("Note")); // Not L10N } else if (findResult.FindMatch.AnnotationName != null) { column = FindColumn(PropertyPath.Root.Property( AnnotationDef.ANNOTATION_PREFIX + findResult.FindMatch.AnnotationName)); } else { return; } if (null != column && null != DataGridView.CurrentRow) { DataGridView.CurrentCell = DataGridView.CurrentRow.Cells[column.Index]; } }