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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        public void ReissueContextChanged()
        {
            ContextChanged?.Invoke(current_context_word, current_context_backward, current_context_surround);

            CitationClusterChanged?.Invoke(current_context_citation_cluster);
        }