예제 #1
0
        public void LoadKeyArrayNode(KeyArrayNode node, NewNode currentNode, int counter)
        {
            var key = node.Key;

            if (currentNode == null)
            {
                currentNode = new NewNode();
                FlattenedNodes.Add(currentNode);
            }
            currentNode.AddKeyNode(node, key);

            foreach (var nodeValue in node.Values)
            {
                if (currentNode.HasValueNode)
                {
                    var nodes        = currentNode.GetNodes();
                    var currentNode2 = new NewNode();
                    foreach (var n in nodes.Take(counter))
                    {
                        currentNode2.AddKeyNode(n.Key, n.Value);
                    }
                    currentNode2.AddKeyNode(node, key);
                    FlattenedNodes.Add(currentNode2);
                    currentNode = currentNode2;
                }

                if (nodeValue is ArrayNode)
                {
                    var arrayNode = nodeValue as ArrayNode;
                    LoadArrayNode(arrayNode, currentNode, counter + 1);
                }
                else if (nodeValue is KeyArrayNode)
                {
                    var keyArrayNode = nodeValue as KeyArrayNode;
                    LoadKeyArrayNode(keyArrayNode, currentNode, counter + 1);
                }
                else if (nodeValue is KeyValueNode)
                {
                    var keyValueNode = nodeValue as KeyValueNode;
                    LoadKeyValueNode(keyValueNode, currentNode, counter + 1);
                }
                else if (nodeValue is ListKeyValueNode)
                {
                    var listKeyValueNode = nodeValue as ListKeyValueNode;
                    LoadListKeyValueNode(listKeyValueNode, currentNode, counter + 1);
                }
                else if (nodeValue is ValueNode)
                {
                    var valueNode = nodeValue as ValueNode;
                    LoadValueNode(valueNode, currentNode);
                }
                else if (nodeValue == null)
                {
                    var valueNode = new ValueNode();
                    valueNode.Value = "";
                    currentNode.SetValueNode(valueNode);
                }
            }
        }
예제 #2
0
        public KeyValuePair <string, ArrayList> GetKeyArrayListPair(KeyArrayNode arrayNode)
        {
            var values = GetArrayList(arrayNode.Values);

            var keyArrayListPair = new KeyValuePair <string, ArrayList>(arrayNode.Key, values);

            return(keyArrayListPair);
        }
예제 #3
0
        public KeyArrayNode GetArrayListNode(string key, ArrayList arrayList)
        {
            var values = GetArrayNodeValues(arrayList);

            var keyArrayNode = new KeyArrayNode()
            {
                Key    = key,
                Values = values,
            };

            return(keyArrayNode);
        }
예제 #4
0
 protected override void DeleteMethodCommand()
 {
     _KeyArrayNode = null;
 }
예제 #5
0
 public KeyArrayNodeTreeViewModel(KeyArrayNode keyArrayNode)
     : base(null, true)
 {
     _KeyArrayNode   = keyArrayNode;
     this.IsExpanded = true;
 }