public List<SummaryNode> ExecuteFilter(List<RedlineML.ISummaryItem> items, FilterContext context) { m_items = items; SummaryNode result = SummaryCategoryNode.Create("Unchanged Placeholders", ChangeCategory.UnchangedPlaceholders); result.ToolTipText = GetTooltipText(); Dictionary<string, SearchResult> results = RedlineML.FastSearch.RedlineMLSearch.Execute(m_placeholderStrings, m_rd, Utils.IsInModifiedDocument, null); foreach (SearchResult sr in results.Values) { SearchSummaryItemBuilder ssib = new SearchSummaryItemBuilder(sr, Utils.IsInOriginalDocument); foreach (ISummaryItem isi in ssib.Execute()) { result.ChildNodes.Add(new SummarySearchNode(isi, context.RTB, context.ChangePositionMap)); } } if (result.ChildNodes.Count > 0) m_result.Add(result); return m_result; }
public List<SummaryNode> ExecuteFilter(List<ISummaryItem> sourceItems, FilterContext context) { m_sourceItems = sourceItems; m_context = context; HashItems(); SelectDuplicates(); if (m_matchingChanges != null) FindMissingChanges(); List<SummaryNode> result = new List<SummaryNode>(); if (m_matchingChanges != null) result.Add(m_matchingChanges); if (m_missingChanges != null) result.Add(m_missingChanges); return result; }
public List<SummaryNode> ExecuteFilter(List<ISummaryItem> summaryItems, FilterContext fc) { m_fc = fc; m_summaryItems = summaryItems; List<ISummaryItem> selectedItems = new List<ISummaryItem>(); foreach (ISummaryItem si in m_summaryItems) { if (MatchesFilter(si)) selectedItems.Add(si); else m_unusedItems.Add(si); } if (selectedItems.Count > 0) { return new List<SummaryNode>() { BuildResultNode(selectedItems) }; } return null; }
public List<SummaryNode> ExecuteFilter(List<RedlineML.ISummaryItem> items, FilterContext context) { foreach (ISummaryItem item in items) { if (IsInContext(item)) { m_result.ChildNodes.Add(new SummaryChangeNode(item, context.RTB)); } else { m_unusedItems.Add(item); } } List<SummaryNode> result = new List<SummaryNode>(); if (m_result.ChildNodes.Count > 0) result.Add(m_result); return result; }
private void ProcessFilters(List<ISummaryItem> items, FilterContext fc, IChangeFilter[] iChangeFilter) { foreach (IChangeFilter icf in iChangeFilter) { List<SummaryNode> snMatching = icf.ExecuteFilter(items, fc); if (snMatching != null) { foreach (SummaryNode sn in snMatching) CategorizedChangesNode.ChildNodes.Add(sn); } items = icf.GetUnusedItems(); } }
private void BuildNodeTrees() { foreach (ISummaryItem si in m_changeSummaryItems) { si.PropertyChanged += new PropertyChangedEventHandler(si_PropertyChanged); AllChangesNode.ChildNodes.Add(new SummaryChangeNode(si, m_rtb)); StatusChangesNode.ChildNodes.Add(new SummaryChangeNode(si, m_rtb)); } // Build data source for Status View RevStatusViewModel = new ReviewStatusViewModel(StatusChangesNode); using (CachingSpellChecker spellCheck = new CachingSpellChecker(new NHunSpellChecker())) { FilterContext fc = new FilterContext() { RTB = m_rtb, SpellChecker = spellCheck, RenderingOptions = m_renderingOptions, ChangePositionMap = _changePosMap }; ProcessFilters(m_changeSummaryItems, fc, new IChangeFilter[] { new BoilerplateFilter(RedlineDoc), new UnchangedPlaceholders(RedlineDoc), new NumberingChanges(), new WhitespaceChangesFilter(), new CasingChangeFilter(), new PunctuationChangesFilter(), new SpellingCorrectionFilter(), new MinorChangeFilter(), new MatchingChangeFilter(RedlineDoc), new ChangeTypeFilter("Style Changes", (ch) => ch.Type == ChangeType.StyleChangedLabel || ch.Type == ChangeType.StyleChangeText, ChangeCategory.StyleChanges, "Changes where a different style has been applied to a paragraph or to text."), new ChangeTypeFilter("Font Changes", (ch) => ch.Type == ChangeType.FormatChange, ChangeCategory.FontChanges, "Changes made to font face, size, color, underline, bold or italic."), new ChangeContextFilter("Footnote", (DocObject x) => x is FootNote, ChangeCategory.FootnoteChanges), new ChangeContextFilter("Endnote", (DocObject x) => x is EndNote, ChangeCategory.EndnoteChanges), new ChangeContextFilter("Header", (DocObject x) => x is Header, ChangeCategory.HeaderChanges), new ChangeContextFilter("Footer", (DocObject x) => x is Footer, ChangeCategory.FooterChanges), new SelectAllFilter("Uncategorized Changes", ChangeCategory.OtherChanges, "Changes that do not fall into any of the above categories.") }); } }