public TagItem Transform( ) { var tagItem = new TagItem(TagName, TagParent, Value, TagType, FullPath, Level); var tempList = (from TagItemModel model in Items select model.Transform()).ToList(); tagItem.GetChilds(); tagItem.Childs = tempList; return(tagItem); }
private void Write() { var xRoot = _storage.DocumentElement; if (xRoot == null) { return; } TagRoot = CreateData(null, null); }
public void Save(TagItem root, XmlElement parent, string filePath) { _storage = new XmlDocument(); var temp = _storage.CreateXmlDeclaration("1.0", "UTF-8", ""); var tempRoot = _storage.CreateElement("tags"); _storage.AppendChild(temp); _storage.AppendChild(tempRoot); CreateStructure(root, tempRoot); _storage.Save(filePath); }
private void AddTag(object sender, RoutedEventArgs e) { var item = (TagItemModel)TagView.SelectedItem; var tag = item?.TagParent.FindChild(item.TagName); var temp = new AddWindow(); temp.ShowDialog(); if (NewTag != null) { tag?.AddChild(NewTag); NewTag = null; } UpdateTree(); }
public List <TagItemModel> CreateDataTree(TagItem parent = null) { if (parent == null) { parent = TagRoot; } var tempList = new List <TagItemModel>(); if (!parent.HaveChilds()) { return(tempList); } tempList.AddRange(parent.GetChilds().Select(node => node.Transform())); return(tempList); }
private void CreateStructure(TagItem root, XmlNode parent) { var tag = _storage.CreateElement("tag"); var nameAttr = _storage.CreateAttribute("name"); var pathAttr = _storage.CreateElement("FullPath"); var levelAttr = _storage.CreateElement("Level"); var valueTypeAttr = _storage.CreateElement("ValueType"); var valueAttr = _storage.CreateElement("Value"); var nameText = _storage.CreateTextNode(root.GetName()); var pathText = _storage.CreateTextNode(root.GetFullPath()); var levelText = _storage.CreateTextNode(root.GetLevel().ToString()); var valueTypeText = _storage.CreateTextNode(TagItem.GetTypeOfValue(root)); var valueText = _storage.CreateTextNode(root.GetValue().ToString()); nameAttr.AppendChild(nameText); pathAttr.AppendChild(pathText); levelAttr.AppendChild(levelText); valueAttr.AppendChild(valueText); valueTypeAttr.AppendChild(valueTypeText); tag.Attributes.Append(nameAttr); tag.AppendChild(pathAttr); tag.AppendChild(levelAttr); tag.AppendChild(valueAttr); tag.AppendChild(valueTypeAttr); if (root.HaveChilds()) { var childElement = _storage.CreateElement("Childs"); foreach (var child in root.GetChilds()) { CreateStructure(child, childElement); } tag.AppendChild(childElement); } if (parent != null) { parent.AppendChild(tag); } else { _storage.AppendChild(tag); } }
public TagItemModel(TagItem tag) { TagName = tag.GetName(); Header = TagName; FullPath = tag.GetFullPath(); Level = tag.GetLevel(); TagParent = tag.GetParent(); TagType = tag.GetTypeOfValue(); switch (TagType) { case "Bool": Value = tag.GetValue().ToString(); Tag = "Images/Bool.png"; break; case "Int": Value = tag.GetValue().ToString(); Tag = "Images/Integer.png"; break; case "Double": Value = tag.GetValue().ToString(); Tag = "Images/Double.png"; break; case "None": Value = ""; Tag = "Images/None.png"; break; } if (!tag.HaveChilds()) { return; } foreach (var item in tag.GetChilds()) { Items.Add(item.Transform()); } }
private TagItem CreateData(TagItem parentItem, XmlNode nodeForItem) { if (nodeForItem == null) { nodeForItem = _storage.DocumentElement; nodeForItem = nodeForItem?.FirstChild; } else if (_tempList2.Contains(nodeForItem)) { return(null); } if (nodeForItem?.Attributes == null || nodeForItem.Name != "tag") { return(null); } _tempList2.Add(nodeForItem); var attr = nodeForItem.Attributes.GetNamedItem("name"); uint tempLevel = 1; var tempPath = ""; var tempName = attr.Value; var tempValue = ""; var valueType = ""; XmlNode childsNod = null; foreach (XmlNode childNode in nodeForItem.ChildNodes) { switch (childNode.Name) { case "Level": tempLevel = uint.Parse(childNode.InnerText); break; case "FullPath": tempPath = childNode.InnerText; break; case "Value": tempValue = childNode.InnerText; break; case "ValueType": valueType = childNode.InnerText; break; case "Childs": childsNod = childNode; break; default: Console.WriteLine(@"Incorrect parameter"); break; } } var newItem = new TagItem(tempName, parentItem, tempValue, valueType, tempPath, tempLevel); if (childsNod == null) { return(newItem); } foreach (XmlNode child in childsNod.ChildNodes) { var tempItem = CreateData(newItem, child); if (tempItem != null) { newItem.AddChild(tempItem); } } return(newItem); }
public static void DeleteTag(TagItem tagForDelete) { var parent = tagForDelete?.GetParent(); parent?.DeleteChild(tagForDelete); }
public TagStorage() { TagRoot = new TagItem("Root"); }