Esempio n. 1
0
        private void SetTreeNodeDown(System.Windows.Forms.TreeNode node)
        {
            if ((node == null) || (node.NextNode) == null)
            {
                return;
            }
            System.Windows.Forms.TreeNode newNode = (System.Windows.Forms.TreeNode)node.Clone();

            //要交换次序的节点
            string NodeId1 = node.Tag.ToString();
            string NodeId2 = node.NextNode.Tag.ToString();

            if (node.Parent != null)
            {
                node.Parent.Nodes.Insert(node.NextNode.Index + 1, newNode);
            }
            else
            {
                node.TreeView.Nodes.Insert(node.NextNode.Index + 1, newNode);
            }

            this.treeViewDir.Nodes.Remove(node);
            this.treeViewDir.SelectedNode = newNode;

            treeViewDir.Focus();

            //数据库更新
            ChangeTrunById(NodeId1, NodeId2);
        }
        public void LoadProjectsAndBuilds(string teamCityServerUrl)
        {
            _teamCityAdapter.InitializeHttpClient(teamCityServerUrl);
            var projects = _teamCityAdapter.GetAllProjects();
            var loadingNode = new TreeNode("loading...");
            treeViewTeamCityProjects.Nodes.Clear();
            treeViewTeamCityProjects.Nodes.AddRange(projects.Select(p => new TreeNode(p)
            {
                Name = p,
                Tag = new Node {IsProject = true, Loaded = false, Name = p}
            }).OrderBy(p=>p.Name).ToArray());

            foreach (TreeNode node in treeViewTeamCityProjects.Nodes)
            {
                node.Nodes.Add((TreeNode) loadingNode.Clone());
            }

            if(!string.IsNullOrWhiteSpace(TeamCityProjectName))
            {
                foreach (TreeNode node in treeViewTeamCityProjects.Nodes)
                {
                    if(node.Name == TeamCityProjectName)
                    {
                        treeViewTeamCityProjects.SelectedNode = node;
                        node.Expand();
                        break;
                    }
                }
            }
        }
Esempio n. 3
0
 public static TreeNode CloneTreeNode(TreeNode tn)
 {
     if (tn == null)
         return null;
     TreeNode res = (TreeNode)tn.Clone();
     CloneTags(res);
     return res;
 }
 public FolderSelector(TreeView Source, TreeNode Node)
 {
     InitializeComponent();
     treeView1.SetExplorerTheme();
     treeView1.ImageList = Source.ImageList;
     TreeNode NewNode = (TreeNode)Node.Clone();
     treeView1.Nodes.Add(NewNode);
     NewNode.Expand();
 }
        public void LoadProjects(string teamCityServerUrl)
        {
            _teamCityAdapter.InitializeHttpClient(teamCityServerUrl);
            var projects = _teamCityAdapter.GetAllProjects();
            var loadingNode = new TreeNode("loading...");
            treeViewTeamCityProjects.Nodes.Clear();
            treeViewTeamCityProjects.Nodes.AddRange(projects.Select(p => new TreeNode(p)
            {
                Tag = new Node {IsProject = true, Loaded = false, Name = p},
            }).ToArray());

            foreach (TreeNode node in treeViewTeamCityProjects.Nodes)
            {
                node.Nodes.Add((TreeNode) loadingNode.Clone());
            }
        }
Esempio n. 6
0
 private void btnBrowse_Click(object sender, EventArgs e)
 {
     TreeNode _nodeTemp = new TreeNode();
     OpenFileDialog dlg = new OpenFileDialog();
     dlg.DefaultExt = "CSS";
     dlg.Filter = "Cascading Style Sheet (*.css)|*.css";
     if (dlg.ShowDialog() == DialogResult.OK)
     {
         string path = dlg.FileName;
         var ctp = new CssTreeParser();
         try
         {
             ctp.Parse(path);
         }
         catch (Exception)
         {
             throw;
         }
         CommonTree r = ctp.Root;
         _nodeTemp.Nodes.Clear();
         if (r.Text != "nil" && r.Text != null)
         {
             _nodeTemp.Text = "nil";
             AddSubTree(_nodeTemp, r, ctp);
         }
         else
         {
             string rootNode = r.Text ?? "nil";
             _nodeTemp.Text = rootNode;
             foreach (CommonTree child in ctp.Children(r))
             {
                 AddSubTree(_nodeTemp, child, ctp);
             }
         }
     }
     treeView1.Nodes.Clear();
     treeView1.Nodes.Add((TreeNode)_nodeTemp.Clone());
     treeView1.ExpandAll();
 }
Esempio n. 7
0
 public void ExpectedOxesPropertyTree()
 {
     expectedOSNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("TAG");
     tree.Nodes[0].Nodes[0].Nodes.Add("h1");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("line-height");
     tree.Nodes[0].Nodes[1].Nodes.Add("13");
     tree.Nodes[0].Nodes[1].Nodes.Add("pt");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[0].Nodes[2].Nodes.Add("bold");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[3].Nodes.Add("padding");
     tree.Nodes[0].Nodes[3].Nodes.Add("0");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[4].Nodes.Add("text-align");
     tree.Nodes[0].Nodes[4].Nodes.Add("left");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("TAG");
     tree.Nodes[1].Nodes[0].Nodes.Add("h2");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[1].Nodes.Add("line-height");
     tree.Nodes[1].Nodes[1].Nodes.Add("13");
     tree.Nodes[1].Nodes[1].Nodes.Add("pt");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[1].Nodes[2].Nodes.Add("bold");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[3].Nodes.Add("padding");
     tree.Nodes[1].Nodes[3].Nodes.Add("0");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[4].Nodes.Add("text-align");
     tree.Nodes[1].Nodes[4].Nodes.Add("left");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("TAG");
     tree.Nodes[2].Nodes[0].Nodes.Add("h3");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[1].Nodes.Add("line-height");
     tree.Nodes[2].Nodes[1].Nodes.Add("13");
     tree.Nodes[2].Nodes[1].Nodes.Add("pt");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[2].Nodes[2].Nodes.Add("bold");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[3].Nodes.Add("padding");
     tree.Nodes[2].Nodes[3].Nodes.Add("0");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[4].Nodes.Add("text-align");
     tree.Nodes[2].Nodes[4].Nodes.Add("left");
     tree.Nodes.Add("RULE");
     tree.Nodes[3].Nodes.Add("TAG");
     tree.Nodes[3].Nodes[0].Nodes.Add("h4");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[1].Nodes.Add("line-height");
     tree.Nodes[3].Nodes[1].Nodes.Add("13");
     tree.Nodes[3].Nodes[1].Nodes.Add("pt");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[3].Nodes[2].Nodes.Add("bold");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[3].Nodes.Add("padding");
     tree.Nodes[3].Nodes[3].Nodes.Add("0");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[4].Nodes.Add("text-align");
     tree.Nodes[3].Nodes[4].Nodes.Add("left");
     tree.Nodes.Add("RULE");
     tree.Nodes[4].Nodes.Add("TAG");
     tree.Nodes[4].Nodes[0].Nodes.Add("h1");
     tree.Nodes[4].Nodes.Add("CLASS");
     tree.Nodes[4].Nodes[1].Nodes.Add("cover");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[2].Nodes.Add("page");
     tree.Nodes[4].Nodes[2].Nodes.Add("cover_page");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[3].Nodes.Add("line-height");
     tree.Nodes[4].Nodes[3].Nodes.Add("1");
     tree.Nodes[4].Nodes[3].Nodes.Add("em");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[4].Nodes.Add("text-align");
     tree.Nodes[4].Nodes[4].Nodes.Add("center");
     tree.Nodes.Add("RULE");
     tree.Nodes[5].Nodes.Add("TAG");
     tree.Nodes[5].Nodes[0].Nodes.Add("h3");
     tree.Nodes[5].Nodes.Add("CLASS");
     tree.Nodes[5].Nodes[1].Nodes.Add("section");
     tree.Nodes[5].Nodes.Add("PSEUDO");
     tree.Nodes[5].Nodes[2].Nodes.Add("contains");
     tree.Nodes[5].Nodes[2].Nodes.Add("(");
     tree.Nodes[5].Nodes[2].Nodes.Add("'" + "Lamatua Yesus peka,roti" + "'");
     tree.Nodes[5].Nodes[2].Nodes.Add(")");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[3].Nodes.Add("font-size");
     tree.Nodes[5].Nodes[3].Nodes.Add("9");
     tree.Nodes[5].Nodes[3].Nodes.Add("pt");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[4].Nodes.Add("string-set");
     tree.Nodes[5].Nodes[4].Nodes.Add("h3");
     tree.Nodes.Add("RULE");
     tree.Nodes[6].Nodes.Add("ANY");
     tree.Nodes[6].Nodes[0].Nodes.Add("ATTRIB");
     tree.Nodes[6].Nodes[0].Nodes[0].Nodes.Add("size");
     tree.Nodes[6].Nodes[0].Nodes[0].Nodes.Add("ATTRIBEQUAL");
     tree.Nodes[6].Nodes[0].Nodes[0].Nodes.Add("'" + "4lines" + "'");
     tree.Nodes[6].Nodes.Add("PROPERTY");
     tree.Nodes[6].Nodes[1].Nodes.Add("height");
     tree.Nodes[6].Nodes[1].Nodes.Add("52");
     tree.Nodes[6].Nodes[1].Nodes.Add("pt");
     expectedOSNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 8
0
 public void ExpectedRemoveUnderscoreTree()
 {
     expectedRUSNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("articleL1");
     tree.Nodes[0].Nodes.Add("PARENTOF");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[2].Nodes.Add("pronunciationL2");
     tree.Nodes[0].Nodes.Add("PRECEDES");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[4].Nodes.Add("pronunciationL3");
     tree.Nodes[0].Nodes.Add("PSEUDO");
     tree.Nodes[0].Nodes[5].Nodes.Add("before");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[6].Nodes.Add("content");
     tree.Nodes[0].Nodes[6].Nodes.Add("1 ");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("entryL2");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[1].Nodes.Add("color");
     tree.Nodes[1].Nodes[1].Nodes.Add("red");
     expectedRUSNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 9
0
 public void ExpectedMultiLineSyntaxTree()
 {
     expectedMLSNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("letter");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("text-align");
     tree.Nodes[0].Nodes[1].Nodes.Add("center");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("width");
     tree.Nodes[0].Nodes[2].Nodes.Add("100");
     tree.Nodes[0].Nodes[2].Nodes.Add("%");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[3].Nodes.Add("margin-top");
     tree.Nodes[0].Nodes[3].Nodes.Add("18");
     tree.Nodes[0].Nodes[3].Nodes.Add("pt");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("etymologygloss");
     tree.Nodes[1].Nodes.Add("PSEUDO");
     tree.Nodes[1].Nodes[1].Nodes.Add("after");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("display");
     tree.Nodes[1].Nodes[2].Nodes.Add("inline");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("definitionL2");
     tree.Nodes[2].Nodes.Add("PSEUDO");
     tree.Nodes[2].Nodes[1].Nodes.Add("after");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("display");
     tree.Nodes[2].Nodes[2].Nodes.Add("inline");
     tree.Nodes.Add("RULE");
     tree.Nodes[3].Nodes.Add("CLASS");
     tree.Nodes[3].Nodes[0].Nodes.Add("xitem");
     tree.Nodes[3].Nodes.Add("PARENTOF");
     tree.Nodes[3].Nodes.Add("CLASS");
     tree.Nodes[3].Nodes[2].Nodes.Add("sense");
     tree.Nodes[3].Nodes.Add("PRECEDES");
     tree.Nodes[3].Nodes.Add("CLASS");
     tree.Nodes[3].Nodes[4].Nodes.Add("sense");
     tree.Nodes[3].Nodes.Add("PSEUDO");
     tree.Nodes[3].Nodes[5].Nodes.Add("before");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[6].Nodes.Add("display");
     tree.Nodes[3].Nodes[6].Nodes.Add("inline");
     tree.Nodes.Add("RULE");
     tree.Nodes[4].Nodes.Add("TAG");
     tree.Nodes[4].Nodes[0].Nodes.Add("oxes");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[1].Nodes.Add("display");
     tree.Nodes[4].Nodes[1].Nodes.Add("block");
     tree.Nodes.Add("RULE");
     tree.Nodes[5].Nodes.Add("TAG");
     tree.Nodes[5].Nodes[0].Nodes.Add("oxesText");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[1].Nodes.Add("display");
     tree.Nodes[5].Nodes[1].Nodes.Add("block");
     tree.Nodes.Add("RULE");
     tree.Nodes[6].Nodes.Add("TAG");
     tree.Nodes[6].Nodes[0].Nodes.Add("chapter");
     tree.Nodes[6].Nodes.Add("PROPERTY");
     tree.Nodes[6].Nodes[1].Nodes.Add("display");
     tree.Nodes[6].Nodes[1].Nodes.Add("block");
     tree.Nodes.Add("RULE");
     tree.Nodes[7].Nodes.Add("TAG");
     tree.Nodes[7].Nodes[0].Nodes.Add("section");
     tree.Nodes[7].Nodes.Add("PROPERTY");
     tree.Nodes[7].Nodes[1].Nodes.Add("display");
     tree.Nodes[7].Nodes[1].Nodes.Add("block");
     tree.Nodes.Add("RULE");
     tree.Nodes[8].Nodes.Add("TAG");
     tree.Nodes[8].Nodes[0].Nodes.Add("title");
     tree.Nodes[8].Nodes.Add("PROPERTY");
     tree.Nodes[8].Nodes[1].Nodes.Add("display");
     tree.Nodes[8].Nodes[1].Nodes.Add("block");
     expectedMLSNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 10
0
 public void AktualisiereTVModul(int[] pin_IDs)
 {
     int ModulID;
     Cdv_Modul[] moduleAlt = (Cdv_Modul[]) this._Cst_EK.AlleModule.Clone();
     Cdv_Modul[] moduleNeu = (Cdv_Modul[]) this._Cst_EK.HoleAlleModule();
     for(int i = 0; i < pin_IDs.Length; i++)
     {
         ModulID=pin_IDs[i];
         bool bGefunden = false;
         bool bEspAktualisiert = false;
         ArrayList alTemp = new ArrayList(this._TreeNodeReferenzen);
         foreach(Cst_EK_TreeviewReferenceItem item in alTemp)
         {
             if(item.PelsObjectID == ModulID)
             {
                 Cdv_Modul modul = this._Cst_EK.HoleModul(ModulID);
                 (item.TreeNodeReferenziert.Tag as Cst_EK_TreeviewTag).Eintrag = modul;
                 item.TreeNodeReferenziert.Text = modul.Modulname;
                 if(!bEspAktualisiert)
                     bEspAktualisiert = AktualisiereTVModulESP(modul, moduleAlt, moduleNeu);
                 bGefunden = true;
                 //break;
             }
         }
         if(!bGefunden)
         {
             Cdv_Modul modul = this._Cst_EK.HoleModul(ModulID);
             TreeNode trn_Modul = new TreeNode();
             trn_Modul.SelectedImageIndex = 16;
             trn_Modul.ImageIndex = 16;
             trn_Modul.Text = modul.Modulname;
             trn_Modul.Tag = new Cst_EK_TreeviewTag();
             (trn_Modul.Tag as Cst_EK_TreeviewTag).Eintrag = modul;
             (trn_Modul.Tag as Cst_EK_TreeviewTag).Kontextmenue = this.ctx_Module;
             (trn_Modul.Tag as Cst_EK_TreeviewTag).Type = modul.GetType();
             Cst_EK_TreeviewReferenceItem refItem = new Cst_EK_TreeviewReferenceItem(modul.ID, trn_Modul);
             this._TreeNodeReferenzen.Add(refItem);
             this.trv_Einsatzmanager.Nodes[1].Nodes.Add(trn_Modul);
             if(modul.EinsatzschwerpunktID != 0)
             {
                 ArrayList myTmpReferenz = new ArrayList(this._TreeNodeReferenzen);
                 foreach(Cst_EK_TreeviewReferenceItem item in myTmpReferenz)
                 {
                     if(item.PelsObjectID == modul.EinsatzschwerpunktID)
                     {
                         TreeNode trn_Temp = (TreeNode) trn_Modul.Clone();
                         Cst_EK_TreeviewReferenceItem refItemNeu = new Cst_EK_TreeviewReferenceItem(modul.ID, trn_Temp);
                         this._TreeNodeReferenzen.Add(refItemNeu);
                         item.TreeNodeReferenziert.Nodes.Add(trn_Temp);
                     }
                 }
             }
         }
     }
     this._Cst_EK.AktualisiereEsps();
     this._Cst_EK.AktualisiereModule();
 }
Esempio n. 11
0
 void AddQuestToRace(TreeNode raceNode, TreeNode questNode)
 {
     raceNode.Nodes.Add((TreeNode)questNode.Clone());
 }
        private bool MoveNode(TreeNode nodeToMove, TreeNode destination, bool linking)
        {
            bool result = false;
            if (destination == null)
            {
                if (_showTreeFaults)
                {
                    MessageBox.Show(this,
                                    "The destination node cannot be null.",
                                    "Drag Fault",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
                }
                if (_throwTreeFaults)
                {
                    throw new InvalidOperationException("The destination node cannot be null.");
                }
                return result;
            }

            if (HasAnsester(destination, nodeToMove))
            {
                if (_showTreeFaults)
                {
                    MessageBox.Show(this,
                                    "The destination node cannot be parented by the node been dragged.",
                                    "Drag Fault",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
                }
                if (_throwTreeFaults)
                {
                    throw new InvalidOperationException(
                        "The destination node cannot be parented by the node been dragged.");
                }
                return result;
            }

            if (nodeToMove == destination)
            {
                return result;
            }

            //if (destination != null)
            //{
                TreeNode clonedNode = (TreeNode) nodeToMove.Clone();
                clonedNode.Tag = nodeToMove.Tag;
                clonedNode.Checked = false;
                destination.Nodes.Add(clonedNode);
                if (linking == false)
                {
                    nodeToMove.Remove();
                }
                clonedNode.EnsureVisible();
                clonedNode.TreeView.SelectedNode = clonedNode;
                result = true;
            //}

            return result;
        }
Esempio n. 13
0
		[Test] // bug 661753
		public void TestTreeNodeClone ()
		{
			TreeNode orig = new TreeNode ();

			orig.Nodes.Add ("Node1");
			orig.Nodes.Add ("Node2");
			orig.Nodes.Add ("Node3");

			orig.Checked = true;
			orig.ImageIndex = 4;
			orig.Name = "MyName";
			orig.SelectedImageIndex = 3;
			orig.StateImageIndex = 8;
			orig.Tag = new object ();
			orig.Text = "MyText";
			orig.ToolTipText = "MyToolTipText";

			orig.ContextMenu = new ContextMenu ();
			orig.ContextMenu.Name = "MyContextMenu";
			orig.ContextMenu.MenuItems.Add (new MenuItem ("MenuItem1"));
			orig.ContextMenu.MenuItems.Add (new MenuItem ("MenuItem2"));

			orig.ContextMenuStrip = new ContextMenuStrip ();
			orig.ContextMenuStrip.Name = "MyContextMenuStrip";
			orig.ContextMenuStrip.Items.Add ("ToolStripText");
			orig.ContextMenuStrip.Items.Add (new SystemDrawingNamespace.Bitmap (1, 1));

			TreeNode clone = orig.Clone () as TreeNode;

			Assert.AreEqual (orig.Nodes[0].Name, clone.Nodes[0].Name, "#01");
			Assert.AreEqual (orig.Nodes[1].Name, clone.Nodes[1].Name, "#02");
			Assert.AreEqual (orig.Nodes[2].Name, clone.Nodes[2].Name, "#03");
			Assert.AreNotEqual (orig.Nodes[0], clone.Nodes[0], "#04");
			Assert.AreNotEqual (orig.Nodes[1], clone.Nodes[1], "#05");
			Assert.AreNotEqual (orig.Nodes[2], clone.Nodes[2], "#06");

			Assert.AreEqual (orig.Checked, clone.Checked, "#07");
			Assert.AreEqual (orig.ImageIndex, clone.ImageIndex, "#08");
			Assert.AreEqual (orig.Name, clone.Name, "#09");
			Assert.AreEqual (orig.SelectedImageIndex, clone.SelectedImageIndex, "#10");
			Assert.AreEqual (orig.StateImageIndex, clone.StateImageIndex, "#11");
			Assert.AreEqual (orig.Tag, clone.Tag, "#12");
			Assert.AreEqual (orig.Text, clone.Text, "#13");
			Assert.AreEqual (orig.ToolTipText, clone.ToolTipText, "#14");
			Assert.AreEqual (orig.ContextMenu, clone.ContextMenu, "#15");
			Assert.AreEqual (orig.ContextMenuStrip, clone.ContextMenuStrip, "#16");
		}
Esempio n. 14
0
 public void ExpectedDoubleClassCSS()
 {
     expectedDCNode.Nodes.Clear();
     var DCtree = new TreeNode();
     DCtree.Text = "ROOT";
     DCtree.Nodes.Add("RULE");
     DCtree.Nodes[0].Nodes.Add("CLASS");
     DCtree.Nodes[0].Nodes[0].Nodes.Add("entry");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[1].Nodes.Add("font-family");
     DCtree.Nodes[0].Nodes[1].Nodes.Add("Gentium");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[2].Nodes.Add("font-size");
     DCtree.Nodes[0].Nodes[2].Nodes.Add("13");
     DCtree.Nodes[0].Nodes[2].Nodes.Add("pt");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[3].Nodes.Add("font-weight");
     DCtree.Nodes[0].Nodes[3].Nodes.Add("normal");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[4].Nodes.Add("font-style");
     DCtree.Nodes[0].Nodes[4].Nodes.Add("normal");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[5].Nodes.Add("text-align");
     DCtree.Nodes[0].Nodes[5].Nodes.Add("justify");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[6].Nodes.Add("text-decoration");
     DCtree.Nodes[0].Nodes[6].Nodes.Add("none");
     DCtree.Nodes[0].Nodes.Add("PROPERTY");
     DCtree.Nodes[0].Nodes[7].Nodes.Add("text-indent");
     DCtree.Nodes[0].Nodes[7].Nodes.Add("-36");
     DCtree.Nodes[0].Nodes[7].Nodes.Add("pt");
     DCtree.Nodes.Add("RULE");
     DCtree.Nodes[1].Nodes.Add("CLASS");
     DCtree.Nodes[1].Nodes[0].Nodes.Add("letter");
     DCtree.Nodes[1].Nodes.Add("PROPERTY");
     DCtree.Nodes[1].Nodes[1].Nodes.Add("text-align");
     DCtree.Nodes[1].Nodes[1].Nodes.Add("center");
     DCtree.Nodes[1].Nodes.Add("PROPERTY");
     DCtree.Nodes[1].Nodes[2].Nodes.Add("font-weight");
     DCtree.Nodes[1].Nodes[2].Nodes.Add("bold");
     DCtree.Nodes[1].Nodes.Add("PROPERTY");
     DCtree.Nodes[1].Nodes[3].Nodes.Add("font-size");
     DCtree.Nodes[1].Nodes[3].Nodes.Add("24");
     DCtree.Nodes[1].Nodes[3].Nodes.Add("pt");
     DCtree.Nodes[1].Nodes.Add("PROPERTY");
     DCtree.Nodes[1].Nodes[4].Nodes.Add("font-family");
     DCtree.Nodes[1].Nodes[4].Nodes.Add("\"" + "Times New Roman" + "\"");
     DCtree.Nodes[1].Nodes[4].Nodes.Add("serif");
     expectedDCNode.Nodes.Add((TreeNode)DCtree.Clone());
 }
Esempio n. 15
0
 public void ExpectedOneLevelTree()
 {
     expectedNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("Base");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("border");
     tree.Nodes[0].Nodes[1].Nodes.Add("2");
     tree.Nodes[0].Nodes[1].Nodes.Add("px");
     tree.Nodes[0].Nodes[1].Nodes.Add("solid");
     tree.Nodes[0].Nodes[1].Nodes.Add("#CC0000");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("margin");
     tree.Nodes[0].Nodes[2].Nodes.Add("2");
     tree.Nodes[0].Nodes[2].Nodes.Add("px");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("letter");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[1].Nodes.Add("background-color");
     tree.Nodes[1].Nodes[1].Nodes.Add("#DBDBDB");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("color");
     tree.Nodes[1].Nodes[2].Nodes.Add("rgb");
     tree.Nodes[1].Nodes[2].Nodes.Add("(");
     tree.Nodes[1].Nodes[2].Nodes.Add("255");
     tree.Nodes[1].Nodes[2].Nodes.Add("0");
     tree.Nodes[1].Nodes[2].Nodes.Add("0");
     tree.Nodes[1].Nodes[2].Nodes.Add(")");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[3].Nodes.Add("margin");
     tree.Nodes[1].Nodes[3].Nodes.Add("2");
     tree.Nodes[1].Nodes[3].Nodes.Add("px");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("align");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[1].Nodes.Add("border");
     tree.Nodes[2].Nodes[1].Nodes.Add("2");
     tree.Nodes[2].Nodes[1].Nodes.Add("px");
     tree.Nodes[2].Nodes[1].Nodes.Add("solid");
     tree.Nodes[2].Nodes[1].Nodes.Add("#CC0000");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("margin");
     tree.Nodes[2].Nodes[2].Nodes.Add("2");
     tree.Nodes[2].Nodes[2].Nodes.Add("px");
     expectedNode.Nodes.Add((TreeNode)tree.Clone());
 }
        private void DoReassignment(TreeNode Child, TreeNode NewParent)
        {
            if ((Child != null) && (NewParent != null))
            {
                String PrevParent = Child.Parent.Text;
                TreeNode NewNode = (TreeNode)Child.Clone();
                ((UnitHierarchyNode)NewNode.Tag).ParentUnitKey = ((UnitHierarchyNode)NewParent.Tag).MyUnitKey;
                InsertAlphabetically(NewParent, NewNode);
                NewNode.Expand();
                NewParent.Expand();
                NewParent.BackColor = Color.White;
                FChangedParents.Add(new Tuple <string, long, long>(
                        ((UnitHierarchyNode)NewParent.Tag).Description,
                        ((UnitHierarchyNode)NewNode.Tag).MyUnitKey,
                        ((UnitHierarchyNode)NewNode.Tag).ParentUnitKey));
                FStatus += String.Format(Catalog.GetString("{0} was moved from {1} to {2}.\r\n"),
                    Child.Text, PrevParent, NewParent.Text);
                txtStatus.Text = FStatus;

                //Select the New Node in the tree view
                SelectNode(NewNode);
                trvUnits.SelectedNode = NewNode;

                //Remove Original Node
                Child.Remove();
                FPetraUtilsObject.SetChangedFlag();
            }
        }
Esempio n. 17
0
 public void ExpectedSingleClassCSS()
 {
     expectedSCNode.Nodes.Clear();
     var SCtree = new TreeNode();
     SCtree.Text = "ROOT";
     SCtree.Nodes.Add("RULE");
     SCtree.Nodes[0].Nodes.Add("CLASS");
     SCtree.Nodes[0].Nodes[0].Nodes.Add("letter");
     SCtree.Nodes[0].Nodes.Add("PROPERTY");
     SCtree.Nodes[0].Nodes[1].Nodes.Add("text-align");
     SCtree.Nodes[0].Nodes[1].Nodes.Add("center");
     SCtree.Nodes[0].Nodes.Add("PROPERTY");
     SCtree.Nodes[0].Nodes[2].Nodes.Add("font-weight");
     SCtree.Nodes[0].Nodes[2].Nodes.Add("bold");
     SCtree.Nodes[0].Nodes.Add("PROPERTY");
     SCtree.Nodes[0].Nodes[3].Nodes.Add("font-size");
     SCtree.Nodes[0].Nodes[3].Nodes.Add("24");
     SCtree.Nodes[0].Nodes[3].Nodes.Add("pt");
     SCtree.Nodes[0].Nodes.Add("PROPERTY");
     SCtree.Nodes[0].Nodes[4].Nodes.Add("font-family");
     SCtree.Nodes[0].Nodes[4].Nodes.Add("\"" + "Times New Roman" + "\"");
     SCtree.Nodes[0].Nodes[4].Nodes.Add("serif");
     expectedSCNode.Nodes.Add((TreeNode)SCtree.Clone());
 }
        private static void NudgeUp(TreeNode node)
        {
            if (node == null)
            {
                return;
            }

            if (node.Index == 0)
            {
                return;
            }

            int newIndex = node.Index - 1;

            TreeNode nodeClone = (TreeNode)node.Clone();

            node.Parent.Nodes.Insert(newIndex, nodeClone);
            node.Parent.Nodes.Remove(node);

            ReOrderSiblings(nodeClone);

            nodeClone.TreeView.SelectedNode = nodeClone;
        }
        /// <summary>
        /// Make this account a child of the selected one in the hierarchy (from drag-drop).
        /// </summary>
        /// <param name="AChild"></param>
        /// <param name="ANewParent"></param>
        private void DoReassignment(TreeNode AChild, TreeNode ANewParent)
        {
            if ((AChild != null) && (ANewParent != null))
            {
                if (((AccountNodeDetails)AChild.Tag).AccountRow.SystemAccountFlag)
                {
                    MessageBox.Show(String.Format(Catalog.GetString("{0} is a System Account and cannot be moved."),
                            ((AccountNodeDetails)AChild.Tag).AccountRow.AccountCode),
                        Catalog.GetString("Re-assign Account"), MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    ShowNodeSelected(null);
                    return;
                }

                FParentForm.SetSelectedAccount(null);
                String PrevParent = AChild.Parent.Text;
                AccountNodeDetails DraggedAccount = (AccountNodeDetails)AChild.Tag;
                String NewParentAccountCode = ((AccountNodeDetails)ANewParent.Tag).AccountRow.AccountCode;

                TreeNode NewNode = (TreeNode)AChild.Clone(); // A new TreeNode is made (and the previous will be deleted),
                                                             // but the actual DataRows are only tweaked to show the new parent.

                DraggedAccount.linkedTreeNode = NewNode;
                DraggedAccount.DetailRow.AccountCodeToReportTo = NewParentAccountCode;
                InsertInOrder(ANewParent, NewNode);
                NewNode.Expand();
                ANewParent.Expand();
                ((AccountNodeDetails)ANewParent.Tag).AccountRow.PostingStatus = false; // The parent is now a summary account!
                ANewParent.BackColor = Color.White;
                FParentForm.ShowStatus(String.Format(Catalog.GetString("{0} was moved from {1} to {2}."),
                        AChild.Text, PrevParent, ANewParent.Text));

                AChild.Remove();
                FPetraUtilsObject.SetChangedFlag();
                FParentForm.SetSelectedAccount(DraggedAccount);
//              SetSelectionUsingTimer(DraggedAccount); // Calling SetSelectedAccount directly doesn't work
                // because Remove(), above, has left a selection "in the queue".
            }
        }
Esempio n. 20
0
 private void SaveNode(TreeNode node, List<TreeNodeItem> nodeItemsList)
 {
     TreeNode clonedNode = (TreeNode)node.Clone();
     TreeNodeItem nodeItem = new TreeNodeItem(clonedNode);
     nodeItemsList.Add(nodeItem);
     foreach (TreeNode childNode in clonedNode.Nodes)
     {
         SaveNode(childNode, nodeItem.Nodes);
     }
     clonedNode.Nodes.Clear();
 }
Esempio n. 21
0
        private void btnCopyOldNew_Click(object sender, EventArgs e)
        {
            MessageBox.Show("TO FINISH!");
            return;

            //TreeNode lastNode = trwOldTopics.Nodes[trwOldTopics.Nodes.Count - 1].
            //    Nodes[trwOldTopics.Nodes[trwOldTopics.Nodes.Count - 1].Nodes.Count - 1];

            System.Windows.Forms.TreeNode selectedOldNode = trwOldTopics.SelectedNode;
            // Clone the old node and its siblings.
            System.Windows.Forms.TreeNode clonedNode = (System.Windows.Forms.TreeNode)selectedOldNode.Clone();

            // Insert the cloned node at the index of the selected node.
            //trwNewTopics.Nodes.Insert(trwNewTopics.SelectedNode.Index, clonedNode);
            trwNewTopics.SelectedNode.Nodes.Add(clonedNode);
        }
Esempio n. 22
0
 public int AddTreeNodeClone(ref TreeNodeCollection nodes, ref TreeNode node)
 {
     int count = nodes.Add((TreeNode)node.Clone());
     return count;
 }
Esempio n. 23
0
 public static TreeNode cloneTreeNode(TreeNode treeNode)
 {
     if (treeNode == null)
         return null;
     return (TreeNode) treeNode.Clone();            
 }
Esempio n. 24
0
        public void AktualisiereTVKfz(int[] pin_IDs)
        {
            int KfzID;
            for(int i = 0; i < pin_IDs.Length; i++)
            {
                KfzID=pin_IDs[i];
                bool bGefunden = false;
                foreach(Cst_EK_TreeviewReferenceItem item in this._TreeNodeReferenzen)
                {
                    if(item.PelsObjectID == KfzID)
                    {
                        Cdv_KFZ kfz = this._Cst_EK.HoleKfz(KfzID);
                        (item.TreeNodeReferenziert.Tag as Cst_EK_TreeviewTag).Eintrag = kfz;
                        item.TreeNodeReferenziert.Text = kfz.KfzTyp + " " + kfz.Kennzeichen;
                        //this.AktualisiereTVEinheitHelfer(einheit,einheitenAlt,einheitenNeu);
                        bGefunden = true;
                    }
                }
                if(!bGefunden)
                {
                    Cdv_KFZ kfz = this._Cst_EK.HoleKfz(KfzID);
                    TreeNode trn_myKfz = new TreeNode();
                    trn_myKfz.SelectedImageIndex = 17;
                    trn_myKfz.ImageIndex = 17;
                    trn_myKfz.Text = kfz.KfzTyp + " " + kfz.Kennzeichen;
                    trn_myKfz.Tag = new Cst_EK_TreeviewTag();
                    (trn_myKfz.Tag as Cst_EK_TreeviewTag).Eintrag = kfz;
                    (trn_myKfz.Tag as Cst_EK_TreeviewTag).Kontextmenue = this.ctx_Fahrzeuge;
                    (trn_myKfz.Tag as Cst_EK_TreeviewTag).Type = kfz.GetType();
                    Cdv_Einheit einheit = this._Cst_EK.HoleEinheitZumKfz(KfzID);
                    ArrayList myTmpReferenz = new ArrayList(this._TreeNodeReferenzen);
                    foreach(Cst_EK_TreeviewReferenceItem item in myTmpReferenz)
                    {
                        if(item.PelsObjectID == einheit.ID)
                        {
                            TreeNode trn_Temp = (TreeNode) trn_myKfz.Clone();
                            Cst_EK_TreeviewReferenceItem refItem = new Cst_EK_TreeviewReferenceItem(kfz.ID, trn_Temp);
                            this._TreeNodeReferenzen.Add(refItem);
                            item.TreeNodeReferenziert.Nodes[1].Nodes.Add(trn_Temp);
                        }
                    }

                }
            }
        }
Esempio n. 25
0
		public void CloneTest ()
		{
			TreeNode orig = new TreeNode ("text", 2, 3, new TreeNode [] { new TreeNode ("child", 22, 33) });
			orig.Tag = FlatStyle.Flat;
			orig.Checked = true;
			orig.BackColor = SystemDrawingNamespace.Color.AliceBlue;
			orig.ForeColor = SystemDrawingNamespace.Color.Beige;

			TreeNode clone = (TreeNode)orig.Clone ();
			Assert.AreEqual ("text", clone.Text, "#1");
			Assert.AreEqual (2, clone.ImageIndex, "#2");
			Assert.AreEqual (3, clone.SelectedImageIndex, "#3");
			Assert.AreEqual (1, clone.Nodes.Count, "#4");
			Assert.AreEqual (FlatStyle.Flat, clone.Tag, "#5");
			Assert.IsTrue (clone.Checked, "#6");
			Assert.AreEqual ("child", clone.Nodes [0].Text, "#10");
			Assert.AreEqual (22, clone.Nodes [0].ImageIndex, "#11");
			Assert.AreEqual (SystemDrawingNamespace.Color.AliceBlue, clone.BackColor, "#12");
			Assert.AreEqual (SystemDrawingNamespace.Color.Beige, clone.ForeColor, "#13");
		}
Esempio n. 26
0
 public void ExpectedParentDualClassTree()
 {
     expectedPDNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("locator");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("text-align");
     tree.Nodes[0].Nodes[1].Nodes.Add("center");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("font-size");
     tree.Nodes[0].Nodes[2].Nodes.Add("10");
     tree.Nodes[0].Nodes[2].Nodes.Add("pt");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("locator");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[1].Nodes.Add("letter");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[1].Nodes[2].Nodes.Add("bold");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[3].Nodes.Add("font-size");
     tree.Nodes[1].Nodes[3].Nodes.Add("20");
     tree.Nodes[1].Nodes[3].Nodes.Add("pt");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[4].Nodes.Add("color");
     tree.Nodes[1].Nodes[4].Nodes.Add("BLUE");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[5].Nodes.Add("text-align");
     tree.Nodes[1].Nodes[5].Nodes.Add("center");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("subentry");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[1].Nodes.Add("letter");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("font-weight");
     tree.Nodes[2].Nodes[2].Nodes.Add("bold");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[3].Nodes.Add("font-size");
     tree.Nodes[2].Nodes[3].Nodes.Add("20");
     tree.Nodes[2].Nodes[3].Nodes.Add("pt");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[4].Nodes.Add("color");
     tree.Nodes[2].Nodes[4].Nodes.Add("GREEN");
     expectedPDNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 27
0
		[Test] // bug 661753
		public void TestTreeNodeClone2 ()
		{
			// Cannot test ImageIndex and ImageKey properties at the same time,
			// as one excludes the other. So this method is for Keys only.

			TreeNode orig = new TreeNode ();

			orig.ImageKey = "MyImageKey";
			orig.SelectedImageKey = "MySelectedImageKey";
			orig.StateImageKey = "MyStateImageKey";

			TreeNode clone = orig.Clone () as TreeNode;

			Assert.AreEqual (orig.ImageKey, clone.ImageKey, "#01");
			Assert.AreEqual (orig.SelectedImageKey, clone.SelectedImageKey, "#02");
			Assert.AreEqual (orig.StateImageKey, clone.StateImageKey, "#03");
		}
Esempio n. 28
0
 public void ExpectedInhertitParentClassPropertyTree()
 {
     expectedIPCPNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("letter");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("text-align");
     tree.Nodes[0].Nodes[1].Nodes.Add("center");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("font-style");
     tree.Nodes[0].Nodes[2].Nodes.Add("italic");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("letter");
     tree.Nodes[1].Nodes[0].Nodes.Add("ATTRIB");
     tree.Nodes[1].Nodes[0].Nodes[1].Nodes.Add("class");
     tree.Nodes[1].Nodes[0].Nodes[1].Nodes.Add("HASVALUE");
     tree.Nodes[1].Nodes[0].Nodes[1].Nodes.Add(("'" + "current" + "'"));
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[1].Nodes.Add("text-align");
     tree.Nodes[1].Nodes[1].Nodes.Add("left");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("color");
     tree.Nodes[1].Nodes[2].Nodes.Add("blue");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("locator");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[1].Nodes.Add("letter");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("background-color");
     tree.Nodes[2].Nodes[2].Nodes.Add("#00ff00");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[3].Nodes.Add("color");
     tree.Nodes[2].Nodes[3].Nodes.Add("red");
     expectedIPCPNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 29
0
 public void ExpectedTwoLevelTree()
 {
     expectedTLNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("entry");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[1].Nodes.Add("font-family");
     tree.Nodes[0].Nodes[1].Nodes.Add("\"" + "<default serif>" + "\"");
     tree.Nodes[0].Nodes[1].Nodes.Add("serif");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("background-color");
     tree.Nodes[0].Nodes[2].Nodes.Add("rgb");
     tree.Nodes[0].Nodes[2].Nodes.Add("(");
     tree.Nodes[0].Nodes[2].Nodes.Add("255");
     tree.Nodes[0].Nodes[2].Nodes.Add("255");
     tree.Nodes[0].Nodes[2].Nodes.Add("255");
     tree.Nodes[0].Nodes[2].Nodes.Add(")");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[3].Nodes.Add("font-weight");
     tree.Nodes[0].Nodes[3].Nodes.Add("normal");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[4].Nodes.Add("font-style");
     tree.Nodes[0].Nodes[4].Nodes.Add("normal");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[5].Nodes.Add("color");
     tree.Nodes[0].Nodes[5].Nodes.Add("rgb");
     tree.Nodes[0].Nodes[5].Nodes.Add("(");
     tree.Nodes[0].Nodes[5].Nodes.Add("0");
     tree.Nodes[0].Nodes[5].Nodes.Add("0");
     tree.Nodes[0].Nodes[5].Nodes.Add("0");
     tree.Nodes[0].Nodes[5].Nodes.Add(")");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("letdata");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[1].Nodes.Add("column-fill");
     tree.Nodes[1].Nodes[1].Nodes.Add("auto");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[2].Nodes.Add("column-rule");
     tree.Nodes[1].Nodes[2].Nodes.Add("solid");
     tree.Nodes[1].Nodes[2].Nodes.Add("1");
     tree.Nodes[1].Nodes[2].Nodes.Add("pt");
     tree.Nodes[1].Nodes[2].Nodes.Add("#aa0000");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("grammaticalinfo");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[1].Nodes.Add("font-family");
     tree.Nodes[2].Nodes[1].Nodes.Add("serif");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("font-size");
     tree.Nodes[2].Nodes[2].Nodes.Add("0.8");
     tree.Nodes[2].Nodes[2].Nodes.Add("em");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[3].Nodes.Add("font-weight");
     tree.Nodes[2].Nodes[3].Nodes.Add("700");
     tree.Nodes.Add("RULE");
     tree.Nodes[3].Nodes.Add("CLASS");
     tree.Nodes[3].Nodes[0].Nodes.Add("locator");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[1].Nodes.Add("display");
     tree.Nodes[3].Nodes[1].Nodes.Add("block");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[2].Nodes.Add("text-align");
     tree.Nodes[3].Nodes[2].Nodes.Add("center");
     tree.Nodes[3].Nodes.Add("PROPERTY");
     tree.Nodes[3].Nodes[3].Nodes.Add("flow");
     tree.Nodes[3].Nodes[3].Nodes.Add("static");
     tree.Nodes[3].Nodes[3].Nodes.Add("(");
     tree.Nodes[3].Nodes[3].Nodes.Add("locator");
     tree.Nodes[3].Nodes[3].Nodes.Add(")");
     tree.Nodes.Add("RULE");
     tree.Nodes[4].Nodes.Add("CLASS");
     tree.Nodes[4].Nodes[0].Nodes.Add("letter");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[1].Nodes.Add("direction");
     tree.Nodes[4].Nodes[1].Nodes.Add("ltr");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[2].Nodes.Add("display");
     tree.Nodes[4].Nodes[2].Nodes.Add("inline");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[3].Nodes.Add("font-weight");
     tree.Nodes[4].Nodes[3].Nodes.Add("normal");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[4].Nodes.Add("font-size");
     tree.Nodes[4].Nodes[4].Nodes.Add("30");
     tree.Nodes[4].Nodes[4].Nodes.Add("pt");
     tree.Nodes[4].Nodes.Add("PROPERTY");
     tree.Nodes[4].Nodes[5].Nodes.Add("font-family");
     tree.Nodes[4].Nodes[5].Nodes.Add("\"" + "Times New Roman" + "\"");
     tree.Nodes[4].Nodes[5].Nodes.Add("serif");
     tree.Nodes.Add("RULE");
     tree.Nodes[5].Nodes.Add("CLASS");
     tree.Nodes[5].Nodes[0].Nodes.Add("slotname");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[1].Nodes.Add("font-size");
     tree.Nodes[5].Nodes[1].Nodes.Add("90");
     tree.Nodes[5].Nodes[1].Nodes.Add("%");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[2].Nodes.Add("font-family");
     tree.Nodes[5].Nodes[2].Nodes.Add("sans-serif");
     tree.Nodes[5].Nodes.Add("PROPERTY");
     tree.Nodes[5].Nodes[3].Nodes.Add("letter-spacing");
     tree.Nodes[5].Nodes[3].Nodes.Add("0.05");
     tree.Nodes[5].Nodes[3].Nodes.Add("em");
     tree.Nodes.Add("RULE");
     tree.Nodes[6].Nodes.Add("CLASS");
     tree.Nodes[6].Nodes[0].Nodes.Add("headword");
     tree.Nodes[6].Nodes.Add("PROPERTY");
     tree.Nodes[6].Nodes[1].Nodes.Add("string-set");
     tree.Nodes[6].Nodes[1].Nodes.Add("guideword");
     tree.Nodes[6].Nodes[1].Nodes.Add("content");
     tree.Nodes[6].Nodes[1].Nodes.Add("(");
     tree.Nodes[6].Nodes[1].Nodes.Add(")");
     tree.Nodes.Add("RULE");
     tree.Nodes[7].Nodes.Add("CLASS");
     tree.Nodes[7].Nodes[0].Nodes.Add("lethead");
     tree.Nodes[7].Nodes.Add("PROPERTY");
     tree.Nodes[7].Nodes[1].Nodes.Add("display");
     tree.Nodes[7].Nodes[1].Nodes.Add("block");
     tree.Nodes[7].Nodes.Add("PROPERTY");
     tree.Nodes[7].Nodes[2].Nodes.Add("column-count");
     tree.Nodes[7].Nodes[2].Nodes.Add("1");
     tree.Nodes[7].Nodes.Add("PROPERTY");
     tree.Nodes[7].Nodes[3].Nodes.Add("margin-right");
     tree.Nodes[7].Nodes[3].Nodes.Add(".75");
     tree.Nodes[7].Nodes[3].Nodes.Add("in");
     tree.Nodes[7].Nodes.Add("PROPERTY");
     tree.Nodes[7].Nodes[4].Nodes.Add("padding-bottom");
     tree.Nodes[7].Nodes[4].Nodes.Add("9");
     tree.Nodes[7].Nodes[4].Nodes.Add("pt");
     expectedTLNode.Nodes.Add((TreeNode)tree.Clone());
 }
Esempio n. 30
0
File: Form1.cs Progetto: viticm/pap2
        private TreeNode DragNode(TreeNode desnode, TreeNode srcnode, DragDropEffects type)
        {
            if (this.m_isReadOnly) return null;
            TreeNode newAddNode = null;

            int des_key = Convert.ToInt32(((object[])desnode.Tag)[0]);
            int des_parent_key = -100;
            if (desnode.Parent != null)
            {
                des_parent_key = Convert.ToInt32(((object[])desnode.Parent.Tag)[0]);
            }
            int src_key = Convert.ToInt32(((object[])srcnode.Tag)[0]);

            object[] des_key_s = new object[1];
            des_key_s[0] = des_key;
            object[] src_key_s = new object[1];
            src_key_s[0] = src_key;

            // 源结点父亲的后续清空
            if (srcnode.Text.Contains(SubsequenceMark))
            {
                string[] Fields = new string[1];
                Fields[0] = "SubsequenceID";
                object[] Values = new object[1];
                Values[0] = DBNull.Value;
                Helper.SqlUpdateRecord(TblName, srcnode.Parent.Tag, Fields, Values, Conn);
                srcnode.Text = srcnode.Text.Remove(srcnode.Text.Length - SubsequenceMark.Length);
            }

            if (type == DragDropEffects.Move) // 左键拖, 移动结点
            {
                // 把结点拖到自己的子孙上,是不允许的。
                if (Helper.IsAncestorOffspring(srcnode, desnode))
                {
                    MessageBox.Show("不能拖动到自己的子孙结点上。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return null;
                }
                // 把结点拖动到父亲或者自己上,无用操作。
                if (srcnode.Parent == desnode || srcnode == desnode)
                    return null;
                // 拖动到镜像结点上,是不允许的。
                if (des_key > 0 && (des_parent_key == -3 || des_parent_key == -4))
                {
                    MessageBox.Show("不能拖动到镜像结点上。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return null;
                }

                // 拖到实结点上
                if (des_key > 0)
                {
                    string[] Fields = new string[6];
                    Fields[0] = "PrequestLogic";
                    Fields[1] = "PrequestID1";
                    Fields[2] = "PrequestID2";
                    Fields[3] = "PrequestID3";
                    Fields[4] = "PrequestID4";
                    Fields[5] = "_AreaQuest";
                    object[] Values = new object[6];
                    Values[0] = DBNull.Value;
                    Values[1] = des_key;
                    Values[2] = DBNull.Value;
                    Values[3] = DBNull.Value;
                    Values[4] = DBNull.Value;
                    Values[5] = DBNull.Value;
                    Helper.SqlUpdateRecord(TblName, src_key_s, Fields, Values, Conn);

                    newAddNode = (TreeNode)(srcnode.Clone());
                    desnode.Nodes.Add(newAddNode);
                    newAddNode.ForeColor = ColorNodeNormal;
                    
                    srcnode.Remove();
                }

                // 拖动到 “全部完成”“完成其一” 上
                else if (des_key == -3 || des_key == -4)
                {
                    if (desnode.Nodes.Count >= 5)
                    {
                        MessageBox.Show("不能在这里增加更多的前续条件", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return null;
                    }

                    // 更新树结点, 这里有重排结点的动作。
                    TreeNode[] node_store = new TreeNode[4];
                    for (int i = 0; i < desnode.Nodes.Count; i++)
                    {
                        node_store[i] = (TreeNode)(desnode.Nodes[i].Clone());
                    }
                    desnode.Nodes.Clear();
                    TreeNode newNode = (TreeNode)(srcnode.Clone());
                    newNode.Nodes.Clear(); // 被拖动到前续任务集合里的结点,不需要显示子结点。
                    newNode.Text = newNode.Text.Contains(SubsequenceMark) ? newNode.Text.Remove(newNode.Text.Length - SubsequenceMark.Length) : newNode.Text;
                    newNode.ForeColor = ColorNodeClone;
                    newAddNode = newNode;
                    desnode.Nodes.Add(newNode);
                    for (int i = 0; i < 4; i++)
                    {
                        if (node_store[i] != null)
                        {
                            desnode.Nodes.Add(node_store[i]);
                        }
                    }

                    // 生成新的前续集合
                    int[] newPrequestIDs = new int[4];
                    int newPrequestCount = 0;
                    foreach (TreeNode node in desnode.Nodes)
                    {
                        int key = Convert.ToInt32(((object[])node.Tag)[0]);
                        if (key > 0)
                        {
                            newPrequestIDs[newPrequestCount++] = key;
                        }
                    }

                    // 更新后续任务里第一层的前续字段们。
                    foreach (TreeNode node in desnode.Nodes)
                    {
                        int key = Convert.ToInt32(((object[])node.Tag)[0]);
                        if (key < 0) // 找到了后续任务的结点
                        {
                            foreach (TreeNode n in node.Nodes)
                            {
                                string[] Fields = new string[4];
                                object[] Values = new object[4];
                                for (int i = 0; i < newPrequestCount; i++)
                                {
                                    Fields[i] = "PrequestID" + Convert.ToString(i + 1);
                                    Values[i] = newPrequestIDs[i];
                                }
                                for (int i = 0; i < 4 - newPrequestCount; i++)
                                {
                                    Fields[4 - i - 1] = "PrequestID" + Convert.ToString(4 - i);
                                    Values[4 - i - 1] = DBNull.Value;
                                }
                                Helper.SqlUpdateRecord(TblName, n.Tag, Fields, Values, Conn);
                            }

                            break;
                        }
                    }
                }

                // 拖动到后续任务上
                else if (des_key == -5)
                {
                    if (CheckExist(desnode, src_key.ToString())) // 存在死循环
                    {
                        MessageBox.Show("不能添加该结点,它已经在其父结点中存在!");
                        return null;
                    }

                    // 生成新的前续集合
                    int[] newPrequestIDs = new int[4];
                    int newPrequestCount = 0;
                    foreach (TreeNode node in desnode.Parent.Nodes)
                    {
                        int key = Convert.ToInt32(((object[])node.Tag)[0]);
                        if (key > 0)
                        {
                            newPrequestIDs[newPrequestCount++] = key;
                        }
                    }

                    // 更新被拖任务的前续字段,和前续logic
                    string[] Fields = new string[6];
                    object[] Values = new object[6];
                    for (int i = 0; i < newPrequestCount; i++)
                    {
                        Fields[i] = "PrequestID" + Convert.ToString(i + 1);
                        Values[i] = newPrequestIDs[i];
                    }
                    for (int i = 0; i < 4 - newPrequestCount; i++)
                    {
                        Fields[4 - i - 1] = "PrequestID" + Convert.ToString(4 - i);
                        Values[4 - i - 1] = DBNull.Value;
                    }
                    Fields[4] = "PrequestLogic";
                    Fields[5] = "_AreaQuest";
                    bool prequestlogic = (des_parent_key == -3) ? true : false;
                    Values[4] = prequestlogic;
                    Values[5] = DBNull.Value;
                    Helper.SqlUpdateRecord(TblName, srcnode.Tag, Fields, Values, Conn);

                    // 更新树
                    newAddNode = (TreeNode)(srcnode.Clone());
                    desnode.Nodes.Add(newAddNode);
                    newAddNode.ForeColor = ColorNodeNormal;
                    srcnode.Remove();
                }

                // 拖动到分类结点上
                else if (des_key == -2)
                {
                    string[] Fields = new string[6];
                    Fields[0] = "PrequestLogic";
                    Fields[1] = "PrequestID1";
                    Fields[2] = "PrequestID2";
                    Fields[3] = "PrequestID3";
                    Fields[4] = "PrequestID4";
                    Fields[5] = CatField;
                    object[] Values = new object[6];
                    Values[0] = DBNull.Value;
                    Values[1] = DBNull.Value;
                    Values[2] = DBNull.Value;
                    Values[3] = DBNull.Value;
                    Values[4] = DBNull.Value;
                    Values[5] = desnode.Text;
                    Helper.SqlUpdateRecord(TblName, srcnode.Tag, Fields, Values, Conn);

                    // 更新树
                    newAddNode = (TreeNode)(srcnode.Clone());
                    desnode.Nodes.Add(newAddNode);
                    newAddNode.ForeColor = ColorNodeNormal;
                    srcnode.Remove();
                }

                // 未知情况
                else
                {
                    MessageBox.Show("不知道怎么拖动。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                treeData.ResetOrder(newAddNode);
            }
            else if (type == DragDropEffects.Copy) // 右键拖, 移动
            {
                if (srcnode.Parent == desnode) // 目标结点是拖动结点的父结点
                {
                    List<TreeNode> list1 = new List<TreeNode>();
                    foreach (TreeNode node in desnode.Nodes)
                    {
                        if (node != srcnode)
                        {
                            list1.Add(node);
                        }
                    }
                    desnode.Nodes.Clear();
                    desnode.Nodes.Add(srcnode);
                    foreach (TreeNode node in list1)
                    {
                        desnode.Nodes.Add(node);
                    }
                }
                else
                {
                    if ((srcnode.Level != desnode.Level) || (srcnode.Parent != desnode.Parent)) // 检查是否拖动到同级结点上
                    {
                        MessageBox.Show("必须拖动到同级结点上!");
                        return null;
                    }

                    TreeNodeCollection nodes;
                    if (srcnode.Level == 0) // 第一层树结点
                    {
                        nodes = treeView1.Nodes;
                    }
                    else // 非第一层树结点
                    {
                        nodes = srcnode.Parent.Nodes;
                    }

                    List<TreeNode> list1 = new List<TreeNode>();
                    List<TreeNode> list2 = new List<TreeNode>();
                    bool findDesNode = false;
                    foreach (TreeNode node in nodes)
                    {
                        if (node != srcnode) // 是否为起始结点
                        {
                            if (node == desnode)
                            {
                                findDesNode = true;
                                list1.Add(node);
                                continue;
                            }

                            if (!findDesNode)
                            {
                                list1.Add(node);
                            }
                            else
                            {
                                list2.Add(node);
                            }
                        }
                    }

                    nodes.Clear();
                    foreach (TreeNode node in list1)
                    {
                        nodes.Add(node);
                    }
                    nodes.Add(srcnode);
                    foreach (TreeNode node in list2)
                    {
                        nodes.Add(node);
                    }
                }
             
                newAddNode = srcnode;
                treeData.ResetOrder(newAddNode);
            }
            return newAddNode;
        }
Esempio n. 31
0
        public TreeNode MoveTreeNode(LuaTable CatSeq, ref TreeNode node)
        {
            int level = -1;
            TreeNodeCollection nodes = this.baseTree.Nodes;
            for (int i = 0; i < CatSeq.Values.Count; i++)
            {
                foreach (TreeNode eachnode in nodes)
                {
                    object[] eachNodeTags = eachnode.Tag as object[];
                    object[] checkNodeTags = CatSeq[i] as object[];

                    if (eachNodeTags != null && checkNodeTags != null) // 如果待检查的是数组
                    {
                        bool bSame = true;
                        for (int j = 0; j < eachNodeTags.Length; j++)
                        {
                            if (eachNodeTags[j].ToString().Trim() != checkNodeTags[j].ToString().Trim())
                            {
                                bSame = false;
                                break;
                            }
                        }
                        if (bSame)
                        {
                            nodes = eachnode.Nodes;
                            level = eachnode.Level;
                            break;
                        }
                    }

                    else if (eachnode.Tag.ToString().Trim() == CatSeq[i].ToString().Trim())
                    {
                        nodes = eachnode.Nodes;
                        level = eachnode.Level;
                        break;
                    }
                }
            }

            if (level == node.Level - 1) // 精确找到要添加的父亲,添加在此结点下
            {
                TreeNode newnode = (TreeNode)node.Clone();
                nodes.Add(newnode);
                node.Remove();
                return newnode;
            }
            else if (level == node.Level - 2) // 未精确找到,添加在最后找到的结点的第一个儿子下.
            {
                TreeNode newnode = (TreeNode)node.Clone();
                nodes[0].Nodes.Add(newnode);
                node.Remove();
                return newnode;
            }
            return null;
        }
Esempio n. 32
0
 public void ExpectedPseudoLevelTree()
 {
     expectedPseudoNode.Nodes.Clear();
     var tree = new TreeNode();
     tree.Text = "ROOT";
     tree.Nodes.Add("RULE");
     tree.Nodes[0].Nodes.Add("CLASS");
     tree.Nodes[0].Nodes[0].Nodes.Add("slots");
     tree.Nodes[0].Nodes.Add("PSEUDO");
     tree.Nodes[0].Nodes[1].Nodes.Add("before");
     tree.Nodes[0].Nodes.Add("PROPERTY");
     tree.Nodes[0].Nodes[2].Nodes.Add("content");
     tree.Nodes[0].Nodes[2].Nodes.Add(": ");
     tree.Nodes.Add("RULE");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[0].Nodes.Add("slots");
     tree.Nodes[1].Nodes.Add("PARENTOF");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[2].Nodes.Add("xitem");
     tree.Nodes[1].Nodes.Add("PRECEDES");
     tree.Nodes[1].Nodes.Add("CLASS");
     tree.Nodes[1].Nodes[4].Nodes.Add("xitem");
     tree.Nodes[1].Nodes.Add("PSEUDO");
     tree.Nodes[1].Nodes[5].Nodes.Add("before");
     tree.Nodes[1].Nodes.Add("PROPERTY");
     tree.Nodes[1].Nodes[6].Nodes.Add("content");
     tree.Nodes[1].Nodes[6].Nodes.Add(", ");
     tree.Nodes.Add("RULE");
     tree.Nodes[2].Nodes.Add("CLASS");
     tree.Nodes[2].Nodes[0].Nodes.Add("xitem");
     tree.Nodes[2].Nodes[0].Nodes.Add("ATTRIB");
     tree.Nodes[2].Nodes[0].Nodes[1].Nodes.Add("lang");
     tree.Nodes[2].Nodes[0].Nodes[1].Nodes.Add("ATTRIBEQUAL");
     tree.Nodes[2].Nodes[0].Nodes[1].Nodes.Add(("'" + "en" + "'"));
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[1].Nodes.Add("font-size");
     tree.Nodes[2].Nodes[1].Nodes.Add("10");
     tree.Nodes[2].Nodes[1].Nodes.Add("pt");
     tree.Nodes[2].Nodes.Add("PROPERTY");
     tree.Nodes[2].Nodes[2].Nodes.Add("text-decoration");
     tree.Nodes[2].Nodes[2].Nodes.Add("none");
     expectedPseudoNode.Nodes.Add((TreeNode)tree.Clone());
 }