private void CmdApply_Click(object sender, RoutedEventArgs e) { CitationCluster citation_cluster = current_citation_cluster; if (null != citation_cluster) { // Make our stored citation cluster look like the GUI choices { // Delete any items that were removed in the GUI ObservableCollection <string> citation_item_keys = (ObservableCollection <string>)ObjCitationsInCluster.ItemsSource; for (int i = citation_cluster.citation_items.Count - 1; i >= 0; --i) { if (!citation_item_keys.Contains(citation_cluster.citation_items[i].reference_key)) { citation_cluster.citation_items.RemoveAt(i); } } // And apply the other settings List <string> specifier_locations = new List <string>(ObjSpecifierLocation.Text.Split(';')); while (specifier_locations.Count < citation_cluster.citation_items.Count) { specifier_locations.Add(""); } List <string> prefixes = new List <string>(ObjPrefix.Text.Split(';')); while (prefixes.Count < citation_cluster.citation_items.Count) { prefixes.Add(""); } List <string> suffixes = new List <string>(ObjSuffix.Text.Split(';')); while (suffixes.Count < citation_cluster.citation_items.Count) { suffixes.Add(""); } for (int i = 0; i < citation_cluster.citation_items.Count; ++i) { var citation_item = citation_cluster.citation_items[i]; // Separate author date? citation_item.SeparateAuthorsAndDate(ObjCheckSeparateAuthorDate.IsChecked ?? false); // Locator on page? citation_item.SetParameter(CitationItem.PARAM_SPECIFIER_TYPE, ObjSpecifierType.Text); citation_item.SetParameter(CitationItem.PARAM_SPECIFIER_LOCATION, specifier_locations[i]); // Prefix/suffix? citation_item.SetParameter(CitationItem.PARAM_PREFIX, prefixes[i]); citation_item.SetParameter(CitationItem.PARAM_SUFFIX, suffixes[i]); } } // And apply the modified cluster back to Word { CitationClusterChanged?.Invoke(citation_cluster); } } }
private void CheckForChangedContexts(string context_word, string context_backward, string context_surround, CitationCluster context_citation_cluster) { // Has text context changed? if (context_word != current_context_word || context_backward != current_context_backward || context_surround != current_context_surround) { current_context_word = context_word; current_context_backward = context_backward; current_context_surround = context_surround; ContextChanged?.Invoke(current_context_word, current_context_backward, current_context_surround); } // Has citation context changed? if ((context_citation_cluster == null ? null : context_citation_cluster.cluster_id) != (current_context_citation_cluster == null ? null : current_context_citation_cluster.cluster_id)) { current_context_citation_cluster = context_citation_cluster; CitationClusterChanged?.Invoke(current_context_citation_cluster); } }
public void ReissueContextChanged() { ContextChanged?.Invoke(current_context_word, current_context_backward, current_context_surround); CitationClusterChanged?.Invoke(current_context_citation_cluster); }