void ReferenceEditorFilters_CollectionChanged(object sender, CollectionChangedEventArgs <ReferenceFilter> e) { if (_eventsSuspended) { return; } var eventsSuspended = _eventsSuspended; try { _eventsSuspended = true; var activeMainForm = GetActiveMainFormOrDefault(mainForm => sender == mainForm.ReferenceEditorFilterSet.Filters); if (activeMainForm == null) { return; } if (activeMainForm.ReferenceEditorFilterSet.Filters.Count == 1) { if (activeMainForm.ReferenceEditorFilterSet.Filters[0].Category != null) { var filter = new KnowledgeItemFilter(activeMainForm.ReferenceEditorFilterSet.Filters[0].Category); var list = new List <KnowledgeItemFilter> { filter }; activeMainForm.KnowledgeOrganizerFilterSet.Filters.ReplaceBy(list); } else if (activeMainForm.ReferenceEditorFilterSet.Filters[0].Keyword != null) { var filter = new KnowledgeItemFilter(activeMainForm.ReferenceEditorFilterSet.Filters[0].Keyword); var list = new List <KnowledgeItemFilter> { filter }; activeMainForm.KnowledgeOrganizerFilterSet.Filters.ReplaceBy(list); } } } finally { _eventsSuspended = eventsSuspended; } }
public static void Main() { //**************************************************************************************************************** // Select Knowledge Items without Entity Links (Annotations) // 1.0 - 2020-07-28 // // // EDIT HERE // Variables to be changed by user // DO NOT EDIT BELOW THIS LINE // **************************************************************************************************************** if (Program.ProjectShells.Count == 0) { return; //no project open } //reference to active Project Project activeProject = Program.ActiveProjectShell.Project; List <KnowledgeItem> allKis = activeProject.AllKnowledgeItems.ToList(); List <KnowledgeItem> noEntityLink = new List <KnowledgeItem>(); try { foreach (KnowledgeItem ki in allKis) { if (ki.QuotationType == QuotationType.None || ki.QuotationType == QuotationType.Highlight) { continue; } if (ki.EntityLinks == null || ki.EntityLinks.Count() == 0) { noEntityLink.Add(ki); } } if (noEntityLink.Count > 0) { noEntityLink = noEntityLink.Distinct().ToList(); KnowledgeItemFilter kiFilter = new KnowledgeItemFilter(noEntityLink, "Knowledge items without entity links", false); List <KnowledgeItemFilter> kiFilters = new List <KnowledgeItemFilter>(); kiFilters.Add(kiFilter); Program.ActiveProjectShell.PrimaryMainForm.KnowledgeOrganizerFilterSet.Filters.ReplaceBy(kiFilters); } } catch (Exception e) { DebugMacro.WriteLine("An error occurred: " + e.Message); } finally { if (noEntityLink.Count == 0) { MessageBox.Show("No such KI found.", "Macro", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(string.Format("{0} reference(s) in new selection", noEntityLink.Count), "Macro", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }