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);
}