public ObjectTreeViewItem(JsonTreeView treeView, JsonObject objectValue) : base(treeView, null) { foreach (var pair in objectValue) { AddChild(JsonTreeViewUtils.CreateJsonValueItem(pair.Key, 0, pair.Value, treeView)); } RepairChildStructure(); }
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(); }
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 ); } } }