public static UiNode FromXomNodeData(XomNodeData nodeData, string name) { if (nodeData == null) throw new ArgumentNullException("nodeData"); var node = new UiNode(nodeData.NodeType, name); node.AttributeData = nodeData.AttributeData; node.UpdateNodeName(); foreach (var child in nodeData.ChildNodes) { var childNodeName = nodeData.NodeType .Children .Where(x => x.PropertyName == child.Key) .SelectMany(x => x.AvailableNodes) .Where(x => x.Value.Type == child.Value.NodeType.Type) .Select(x => x.Key) .First(); var childNode = UiNode.FromXomNodeData(child.Value, childNodeName); node._children.Add(childNode); } return node; }
private UiStructureMenuItem CreateMenuItem(KeyValuePair<string, XomNode> xomNodePair, UiNode uiNode) { return new UiStructureMenuItem { Text = xomNodePair.Key, XomNode = xomNodePair.Value, UiNode = uiNode }; }
public void CreateChild(XomNode xomNode, string name) { var newNode = new UiNode(xomNode, name); _children.Add(newNode); }