Example #1
0
        //private int count = 0;
        private void loadXmlNodes(IBasicData parentBasicData, XmlNode xmlNode)
        {
            // este simbolo faz ocorrer um erro no xml:  -->
            //Debug.WriteLine(count++);
            int         index         = 1;
            XmlNodeList FirstsNodes   = xmlNode.ChildNodes;
            IBasicData  tempBasicData = null;

            foreach (XmlNode item in FirstsNodes)
            {
                string tagName = item.Name;
                // Debug.WriteLine(tagName);

                switch (tagName)
                {
                case "userData":
                    tempBasicData = new UserData();
                    break;

                case "commandBarData":
                    tempBasicData = new CommandBarData();
                    break;

                case "state":
                    tempBasicData = new StateData();
                    break;

                case "itemData":
                    tempBasicData = new ItemData();
                    break;

                case "dialog":
                    tempBasicData = new DialogData();
                    break;

                case "viewTemplate":
                    tempBasicData = new ViewTemplate();
                    break;

                case "dockerData":
                    tempBasicData = new DockerData();
                    break;

                case "container":
                    tempBasicData = new ContainerData();
                    break;

                case "frame":
                    tempBasicData = new FrameData();
                    break;

                default:
                    tempBasicData = new OtherData();
                    break;
                }

                if (tempBasicData != null && parentBasicData != null)
                {
                    tempBasicData.TagName = tagName;
                    tempBasicData.SetXmlChildreID(index);
                    tempBasicData.SetXmlChildreParentID(parentBasicData.XmlChildreID);
                    tempBasicData.Parent = parentBasicData;
                    index++;
                    try {
                        if (item.Attributes != null)
                        {
                            foreach (XmlAttribute att in item.Attributes)
                            {
                                if (att.Name == "guid")
                                {
                                    tempBasicData.Guid = att.Value;
                                    //break;
                                }
                                if (att.Name == "guidRef")
                                {
                                    tempBasicData.GuidRef = att.Value;
                                    //break;
                                }
                                tempBasicData.Attributes.Add(new DataClass.Attribute(att.Name, att.Value));
                            }
                        }
                    }
                    catch (Exception)
                    {
                        throw new Exception("Attribute load failed in tag \"" + tagName + "\"");
                    }


                    tempBasicData.SetTreeLevel(parentBasicData.TreeLevel);
                    parentBasicData.Add(tempBasicData);
                    if (item.ChildNodes.Count > 0)
                    {
                        loadXmlNodes(tempBasicData, item);
                    }
                }
            }
        }