protected virtual void ConfigureItem(XmlDocument document, ListViewItem item, XmlNode ddNode)
{
XmlNode templateRootNode = document.SelectSingleNode("//template");
Debug.Assert(templateRootNode != null, "FXT files must always have a <template> node somewhere.");
FxtType ft;
ft.m_sFormat = XmlUtils.GetOptionalAttributeValue(templateRootNode, "format", "xml");
string sType = XmlUtils.GetOptionalAttributeValue(templateRootNode, "type", "fxt");
switch (sType)
{
case "fxt":
ft.m_ft = FxtTypes.kftFxt;
break;
case "configured":
ft.m_ft = FxtTypes.kftConfigured;
break;
case "classified":
ft.m_ft = FxtTypes.kftClassifiedDict;
break;
case "reversal":
ft.m_ft = FxtTypes.kftReversal;
break;
case "translatedList":
ft.m_ft = FxtTypes.kftTranslatedLists;
break;
case "pathway":
ft.m_ft = FxtTypes.kftPathway;
break;
case "LIFT":
ft.m_ft = FxtTypes.kftLift;
break;
case "grammarSketch":
ft.m_ft = FxtTypes.kftGrammarSketch;
break;
case "semanticDomains":
ft.m_ft = FxtTypes.kftSemanticDomains;
break;
default:
Debug.Assert(false, "Invalid type attribute value for the template element");
ft.m_ft = FxtTypes.kftFxt;
break;
}
ft.m_sDataType = XmlUtils.GetOptionalAttributeValue(templateRootNode, "datatype", "UNKNOWN");
ft.m_sXsltFiles = XmlUtils.GetOptionalAttributeValue(templateRootNode, "xslt", null);
ft.m_filtered = XmlUtils.GetOptionalBooleanAttributeValue(templateRootNode, "filtered", false);
ft.m_path = (string)item.Tag;
m_rgFxtTypes.Add(ft);
// We can't actually disable a list item, but we can make it look and act like it's
// disabled.
if (ItemDisabled(ft.m_ft, ft.m_filtered))
item.ForeColor = SystemColors.GrayText;
}