Esempio n. 1
0
 private void LoadArray(JToken value, JsonTreeNode node)
 {
     foreach (var item in value)
     {
         AddNode(node, null, item);
     }
 }
Esempio n. 2
0
 private void LoadObject(JObject obj, JsonTreeNode node)
 {
     foreach (var item in obj)
     {
         AddNode(node, item.Key, item.Value);
     }
 }
Esempio n. 3
0
        internal static JsonTreeNode CreateNode(string property, JToken item)
        {
            NodeType type;
            string   text;
            string   textWhenSelected = null;

            if (item.Type == JTokenType.Object || item.Type == JTokenType.Array)
            {
                text             = property;
                textWhenSelected = text;
            }
            else
            {
                type = NodeType.Value;
                string value = item.ToString();
                text = property == null ?
                       value :
                       string.Format($"{property}: {value}");
                textWhenSelected = string.Format($"{text} (type: {item.Type})");
            }

            type = item.Type == JTokenType.Object ? NodeType.Object :
                   item.Type == JTokenType.Array ? NodeType.Array :
                   NodeType.Value;

            var node = new JsonTreeNode(type, text, textWhenSelected);

            node.ImageKey         = item.Type.ToString();
            node.SelectedImageKey = node.ImageKey;

            return(node);
        }
Esempio n. 4
0
        private void AddNode(JsonTreeNode parentNode, string property, JToken item)
        {
            var node = JsonTreeNodeCreator.CreateNode(property, item);

            parentNode.Nodes.Add(node);

            if (item.Type == JTokenType.Array)
            {
                LoadArray(item, node);
            }

            if (item.Type == JTokenType.Object)
            {
                LoadObject(item as JObject, node);
            }
        }
Esempio n. 5
0
        private void LoadTree(JObject json)
        {
            Nodes.Clear();

            var rootNode = new JsonTreeNode(NodeType.Object, "(root)");

            Nodes.Add(rootNode);
            SelectedNode = rootNode;

            rootNode.ImageKey         = rootNode.NodeType.ToString();
            rootNode.SelectedImageKey = rootNode.ImageKey;

            LoadObject(json, rootNode);

            rootNode.Expand();
        }