public ObjectTreeViewItem(JsonTreeView treeView, JsonObject objectValue) : base(treeView, null)
        {
            foreach (var pair in objectValue)
            {
                AddChild(JsonTreeViewUtils.CreateJsonValueItem(pair.Key, 0, pair.Value, treeView));
            }

            RepairChildStructure();
        }
Exemple #2
0
        public ArrayTreeViewItem(JsonTreeView treeView, JsonArray arrayValue) : base(treeView, null)
        {
            for (int i = 0; i < arrayValue.Count; i++)
            {
                AddChild(JsonTreeViewUtils.CreateJsonValueItem(null, i, arrayValue[i], treeView));
            }

            RepairChildStructure();
        }
Exemple #3
0
        private void DisplaySingleTypeToggle(JsonType type, string text)
        {
            // no active item
            if (jsonTreeView.activeItem == null)
            {
                GUILayout.Toggle(false, text, EditorStyles.toolbarButton);
                return;
            }

            // active item has this type (cannot click)
            if (jsonTreeView.activeItem.JsonType == type)
            {
                GUILayout.Toggle(true, text, EditorStyles.toolbarButton);
                return;
            }

            // can click
            if (GUILayout.Toggle(false, text, EditorStyles.toolbarButton))
            {
                // change the item type:

                var newItem = JsonTreeViewUtils.CreateJsonValueItem(
                    jsonTreeView.activeItem.Key,
                    jsonTreeView.activeItem.Index,
                    JsonTreeViewUtils.DefaultValueForType(type),
                    jsonTreeView
                    );

                if (jsonTreeView.activeItem.parent is ObjectTreeViewItem)
                {
                    ((ObjectTreeViewItem)jsonTreeView.activeItem.parent).ReplaceField(
                        jsonTreeView.activeItem.Key,
                        newItem
                        );
                }

                if (jsonTreeView.activeItem.parent is ArrayTreeViewItem)
                {
                    ((ArrayTreeViewItem)jsonTreeView.activeItem.parent).ReplaceItem(
                        jsonTreeView.activeItem.Index,
                        newItem
                        );
                }
            }
        }