SIL.FieldWorks.LexText.Controls.MasterCategoryListDlg.AddNode C# (CSharp) Method

AddNode() private method

private AddNode ( Set posSet, XmlNode node, TreeNodeCollection treeNodes, SIL.FieldWorks.FDO.FdoCache cache ) : void
posSet Set
node System.Xml.XmlNode
treeNodes System.Windows.Forms.TreeNodeCollection
cache SIL.FieldWorks.FDO.FdoCache
return void
		private void AddNode(Set<IPartOfSpeech> posSet, XmlNode node, TreeNodeCollection treeNodes, FdoCache cache)
		{
			if (node.Attributes["id"].InnerText == "PartOfSpeechValue")
			{
				AddNodes(posSet, node.SelectNodes("item"), treeNodes, cache);
				return; // Skip the top level node.
			}
			MasterCategory mc = MasterCategory.Create(posSet, node, cache);
			TreeNode tn = new TreeNode();
			tn.Tag = mc;
			tn.Text = TsStringUtils.NormalizeToNFC(mc.ToString());
			if (mc.InDatabase)
			{
				try
				{
					m_skipEvents = true;
					tn.Checked = true;
					tn.ForeColor = Color.Gray;
				}
				finally
				{
					m_skipEvents = false;
				}
			}

			treeNodes.Add(tn);
			m_nodes.Add(tn);
			XmlNodeList list = node.SelectNodes("item");
			if (list.Count > 0)
				AddNodes(posSet, list, tn.Nodes, cache);
		}