/// <summary> /// Load filter tree from xml file /// </summary> /// <param name="filter_tree_xml_file"></param> internal void LoadFilterTree(string filter_tree_xml_file) { try { FilterTree.Nodes.Clear(); CurrentFilterControl = null; // Filter_flowLayoutPanel.BackColor = Color.Empty; pLevelHighlight.BackColor = Color.Empty; InputGroupName.Items.Clear(); FilterComment.Text = ""; if (filter_tree_xml_file == null) return; this.Text = filter_tree_xml_file.Substring(filter_tree_xml_file.LastIndexOf("\\") + 1) + " " + title; //create filter tree Parser p = new Parser(filter_tree_xml_file); foreach (Filter lr in p.RootFilters) FilterTree.Nodes.Add(create_tree(lr, 0)); foreach (TreeNode tn in FilterTree.Nodes) tn.ExpandAll(); //find default filter chain and check it if (FilterTree.Nodes.Count > 0) { TreeNode tn = FilterTree.Nodes[0]; for (; tn.FirstNode != null; tn = tn.FirstNode) ; tn.Checked = true; } string tree_name = filter_tree_xml_file; tree_name = tree_name.Substring(tree_name.LastIndexOf("\\") + 1); if (tree_name.EndsWith("." + Program.FilterTreeFileExtension, StringComparison.InvariantCultureIgnoreCase)) tree_name = tree_name.Substring(0, tree_name.LastIndexOf(".")); FilterTreeName.Text = tree_name; FilterTreeFileDir.Text = Path.GetDirectoryName(filter_tree_xml_file) + @"\"; FilterTreeFileDir.SelectionStart = FilterTreeFileDir.Text.Length; FilterTreeFileDir.ScrollToCaret(); Settings.Default.LastFilterTreeFile = filter_tree_xml_file; Settings.Default.Save(); } catch (Exception e) { Message.Error(e); } }
/// <summary> /// adds the selected prepared filter to the selected filter tree node /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddPrepared_Click(object sender, EventArgs e) { try { if (PreparedFilterTrees.SelectedIndex < 0) { Message.Exclaim("No prepared filter tree is selected."); return; } Parser p = new Parser(prepared_filter_tree_files[(string)PreparedFilterTrees.SelectedItem]); AddFilterTreeToSelectedTreeNode(p.RootFilters); } catch (Exception ex) { Message.Error(ex); } }
/// <summary> /// start parsing by the current debug regex chain /// </summary> /// <returns></returns> internal bool RunParse() { ignore_selection_changed = true; PrevMark.Enabled = true; NextMark.Enabled = true; if (current_capture_label_index >= 0 && current_capture_label_index < CaptureLabels.Count) unmark_capture_branch(CaptureLabels[current_capture_label_index]); current_capture_label_index = -1; current_path_capture_count = 0; fill_NavigateBy(true); CaptureLabels.Clear(); TextBox.SelectAll(); TextBox.SelectionBackColor = Color.White; TextBox.DeselectAll(); //RefreshDocument(); parser = FilterTreeForm.This.GetFilterChainParser(); if (parser.RootFilters == null || parser.RootFilters.Length < 1) return false; //page = TextBox.Text; ThreadStart ts = new ThreadStart(parse); parse_thread = new Thread(ts); parse_thread.Start(); return true; }