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; } } } }
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()); } }
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(); }
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()); }
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()); }
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()); }
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(); }
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; }
[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"); }
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()); }
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(); } }
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". } }
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(); }
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); }
public int AddTreeNodeClone(ref TreeNodeCollection nodes, ref TreeNode node) { int count = nodes.Add((TreeNode)node.Clone()); return count; }
public static TreeNode cloneTreeNode(TreeNode treeNode) { if (treeNode == null) return null; return (TreeNode) treeNode.Clone(); }
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); } } } } }
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"); }
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()); }
[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"); }
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()); }
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()); }
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; }
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; }
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()); }