コード例 #1
0
        private void CodeSourceTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (CodeSourceTreeIsCollapsing)
            {
                return;
            }

            TreeViewItem selected = (TreeViewItem)e.NewValue;

            selected.BringIntoView();
            selected.Focus();

            if (PreFilterLock.IsChecked == false)
            {
                AbstractXPathBuilder xpath = Parser.SuggestXPathFor(selected, String.Empty);
                XPathInput2.Text = string.Empty;
                XPathInput1.Text = xpath.ToString();
                ClickHistory.Add(xpath);
            }
            else
            {
                string root = XPathInput1.Text;
                AbstractXPathBuilder xpath = Parser.SuggestXPathFor(selected, root);
                XPathInput2.Text = xpath.ToString();
                ClickHistory.Add(xpath);
            }
        }
コード例 #2
0
 private void ClickHistory_XPathSolutionClick(object sender, AbstractXPathBuilder e)
 {
     if (e != null)
     {
         XPathInput1.Text = e.ToString();
     }
 }
コード例 #3
0
ファイル: XPathHistory.xaml.cs プロジェクト: nnovic/GetFacts
 public void Add(AbstractXPathBuilder xpath)
 {
     if (History.Contains(xpath) == false)
     {
         History.Insert(0, xpath);
     }
 }
コード例 #4
0
        public void AbstractXPathBuilder_Synthetize_ExactSamePathsButDifferentHierarchies()
        {
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(GenerateHtmlPageForSynthetizeTests());

            HtmlNode             article1 = doc.DocumentNode.SelectSingleNode("//*[@id=\"article1\"]/h2");
            AbstractXPathBuilder xpath1   = new HtmlXPathBuilder();

            xpath1.Build(article1);

            HtmlNode             article2 = doc.DocumentNode.SelectSingleNode("//*[@id=\"article2\"]/h2");
            AbstractXPathBuilder xpath2   = new HtmlXPathBuilder();

            xpath2.Build(article2);

            List <AbstractXPathBuilder> list = new List <AbstractXPathBuilder>();

            list.Add(xpath1);
            list.Add(xpath2);
            AbstractXPathBuilder synthetisis = HtmlXPathBuilder.Synthetize(list);
            string expectedResult            = "/html/body/div/section/article[@id]/h2";
            string actualResult = synthetisis.ToString();

            Assert.AreEqual(expectedResult, actualResult);

            synthetisis.Optimize();
            string expectedOptimization = "//article[@id]/h2";
            string optimizedResult      = synthetisis.ToString();

            Assert.AreEqual(expectedOptimization, optimizedResult);
        }
コード例 #5
0
 private void TextBoxWithValidation_PreviewDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent("AbstractXPathBuilder"))
     {
         AbstractXPathBuilder xp = e.Data.GetData("AbstractXPathBuilder") as AbstractXPathBuilder;
         this.Text = xp.ToString();
         e.Handled = true;
     }
 }
コード例 #6
0
ファイル: XPathHistory.xaml.cs プロジェクト: nnovic/GetFacts
        private void TrySumUp_Click(object sender, RoutedEventArgs e)
        {
            AbstractXPathBuilder xp = AbstractXPathBuilder.SynthetizeAndOptimize(History);

            if (xp != null)
            {
                XPathSolutionClick?.Invoke(this, xp);
            }
        }
コード例 #7
0
ファイル: XPathHistory.xaml.cs プロジェクト: nnovic/GetFacts
        // Helper to search up the VisualTree

        /*private static T FindAnchestor<T>(DependencyObject current)
         *  where T : DependencyObject
         * {
         *  do
         *  {
         *      if (current is T)
         *      {
         *          return (T)current;
         *      }
         *      current = VisualTreeHelper.GetParent(current);
         *  }
         *  while (current != null);
         *  return null;
         * }*/


        #endregion

        private void RemoveEntryButton_Click(object sender, RoutedEventArgs e)
        {
            AbstractXPathBuilder xp = HistoryListBox.SelectedItem as AbstractXPathBuilder;

            if (xp != null)
            {
                History.Remove(xp);
            }
        }
コード例 #8
0
ファイル: XPathHistory.xaml.cs プロジェクト: nnovic/GetFacts
        private void HistoryListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            // Store the mouse position
            startPoint = e.GetPosition(null);

            // Get the dragged item
            FrameworkElement tb = (FrameworkElement)e.OriginalSource;

            dragSource = tb.DataContext as AbstractXPathBuilder;
        }
コード例 #9
0
ファイル: XPathHistory.xaml.cs プロジェクト: nnovic/GetFacts
        private void HistoryListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            AbstractXPathBuilder xp = HistoryListBox.SelectedItem as AbstractXPathBuilder;

            XPathEntryDoubleClick?.Invoke(this, xp);
        }