public PageInfo(string fileName, string filePath, SchemeInfo scheme) { isErrorsOccurred = false; originalFileName = fileName; currentScheme = scheme; xmlFile = XDocument.Load(filePath); tabPage = new TabPage(originalFileName); tabPage.AutoScroll = true; xmlFile = MainForm.ReadTagsToReplace(xmlFile, originalFileName); xmlFileObject = FillGroups(currentScheme); CheckForErrors(); MainForm.mainTabControl.Controls.Add(tabPage); }
XmlInfo FillGroups(SchemeInfo scheme) { XmlInfo xmlInfo = new XmlInfo(); List <GroupInfo> groupsInfo = new List <GroupInfo>(); for (int i = 0; i < scheme.groupsAbstractions.Count; i++) { GroupInfo gi = new GroupInfo(scheme.groupsAbstractions[i].groupParameters); for (int j = 0; j < scheme.groupsAbstractions[i].tagsInGroup.Count; j++) { if (scheme.groupsAbstractions[i].tagsInGroup[j] is SingleTagAbstract) { SingleTagAbstract sta = scheme.groupsAbstractions[i].tagsInGroup[j] as SingleTagAbstract; TagSingleInfo tsi = new TagSingleInfo(sta.tagParameters); tsi.xmlDoc = xmlFile; gi.elements.Add(tsi); } else if (scheme.groupsAbstractions[i].tagsInGroup[j] is MultipleTagAbstract) { MultipleTagAbstract mta = scheme.groupsAbstractions[i].tagsInGroup[j] as MultipleTagAbstract; TagMultipleInfo tmi = new TagMultipleInfo(mta.tagParameters); tmi.xmlDoc = xmlFile; gi.elements.Add(tmi); } else if (scheme.groupsAbstractions[i].tagsInGroup[j] is DividerTagAbstract) { DividerTagAbstract dta = scheme.groupsAbstractions[i].tagsInGroup[j] as DividerTagAbstract; TagDivider td = new TagDivider(dta.tagParameters, dta.counter); gi.elements.Add(td); } else { throw new Exception("Помилка в побудові обїектної моделі Xml файлу"); } } groupsInfo.Add(gi); } xmlInfo.tagGroups.AddRange(groupsInfo); return(xmlInfo); }