예제 #1
0
        public ListKeyValueNode GetKeyValueNodes(Dictionary <string, object> dictionary, int index)
        {
            List <INode> values = new List <INode>();

            foreach (var keyValuePair in dictionary)
            {
                if (keyValuePair.Value is ArrayList)
                {
                    var keyArrayNodeParser = new KeyArrayNodeParser();
                    var arrayNode          = keyArrayNodeParser.GetArrayListNode(keyValuePair.Key, keyValuePair.Value as ArrayList);
                    values.Add(arrayNode);
                }
                else
                {
                    var keyValueNodeParser = new KeyValueNodeParser();
                    var keyValueNode       = keyValueNodeParser.GetKeyValueNode(keyValuePair);
                    values.Add(keyValueNode);
                }
            }

            ListKeyValueNode listKeyvalueNode = new ListKeyValueNode();

            listKeyvalueNode.Index  = index;
            listKeyvalueNode.Values = values;
            return(listKeyvalueNode);
        }
예제 #2
0
        public Dictionary <string, object> GetDictionary(ListKeyValueNode listKeyValueNode)
        {
            List <KeyValuePair <string, object> > values = new List <KeyValuePair <string, object> >();

            foreach (var node in listKeyValueNode.Values)
            {
                if (node is KeyArrayNode)
                {
                    var keyArrayNodeParser = new KeyArrayNodeParser();
                    var keyValuePair       = keyArrayNodeParser.GetKeyArrayListPair(node as KeyArrayNode);
                    values.Add(new KeyValuePair <string, object>(keyValuePair.Key, keyValuePair.Value));
                }
                else
                {
                    var keyValueNodeParser = new KeyValueNodeParser();
                    var keyValuePair       = keyValueNodeParser.GetKeyValuePair(node as KeyValueNode);
                    values.Add(keyValuePair);
                }
            }

            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            foreach (var value in values)
            {
                dictionary.Add(value.Key, value.Value);
            }

            return(dictionary);
        }
예제 #3
0
        public void LoadListKeyValueNode(ListKeyValueNode node, NewNode currentNode, int counter)
        {
            var key = node.Index;

            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);
                }
            }
        }
 public ListKeyValueNodeTreeViewModel(ListKeyValueNode listKeyValueNode)
     : base(null, true)
 {
     _ListKeyValueNode = listKeyValueNode;
     this.IsExpanded   = true;
 }