Exemplo n.º 1
0
        public void LinkTextToCard(object sender, RoutedEventArgs e)
        {
            Globals.ThisAddIn.Application.UndoRecord.StartCustomRecord("Link Card");
            if (ListViewxaml.SelectedItems.Count == 1)
            {
                // select the range of text
                Microsoft.Office.Interop.Word.Range range = Globals.ThisAddIn.Application.Selection.Range;

                if (CheckRulesBookmark(range)) // controls that the paragraphs don't overimpose
                {
                    MessageBox.Show("You can't assing overlapping paragraphs to cards.");
                    ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = "None";
                }
                Microsoft.Office.Interop.Word.Paragraphs paragraphs = Globals.ThisAddIn.Application.Selection.Paragraphs;


                // this checks that is paragraphs and not middle phrases
                if (paragraphs.Count > 0 && ((range.Start == paragraphs.First.Range.Start) && (range.End == paragraphs.Last.Range.End)))
                {
                    // add a bookmark with a specific name calling another method the name will go into the label of the control
                    string nameBookMrk = AddBookmark(range);
                    ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = nameBookMrk;
                }
                else
                {
                    MessageBox.Show("You need to select one or more paragraphs to add to the Card");
                    ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = "None";
                }
                ((CardControl)ListViewxaml.SelectedItem).SetStats();
            }
            Globals.ThisAddIn.Application.UndoRecord.EndCustomRecord();
        }
Exemplo n.º 2
0
        public bool CheckRulesBookmark(Microsoft.Office.Interop.Word.Range range)// controls that the paragraphs don't overimpose FALSE= correct
        {
            int start = range.Start;
            int end   = range.End;

            Microsoft.Office.Interop.Word.Paragraphs paragraphs = range.Paragraphs;
            foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in paragraphs)
            {
                foreach (Microsoft.Office.Interop.Word.Bookmark bookmark in Globals.ThisAddIn.Application.ActiveDocument.Bookmarks)
                {
                    foreach (Microsoft.Office.Interop.Word.Paragraph bparagraph in bookmark.Range.Paragraphs)
                    {
                        string debug1 = bparagraph.ID;
                        string debug2 = paragraph.ID;
                        if (bparagraph.ParaID == paragraph.ParaID)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }