private void OnEnable() { if (_treeViewState == null) { _treeViewState = new TreeViewState(); } _simpleTreeView = new SimpleTreeView(_treeViewState); }
void OnEnable() { EnsureSpriteCollection(); if (_treeViewState == null) { _treeViewState = new TreeViewState(); } _simpleTreeView = new SimpleTreeView(_treeViewState); }
void OnEnable() { // Check whether there is already a serialized view state (state that survived assembly) // reloading if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } m_SimpleTreeView = new SimpleTreeView(m_TreeViewState); }
public StructureDesignViewModel() { ComponentTree = new SimpleTreeView().ViewModel.MyTree; ComponentTree = new TreeNode { Name = "Component Root", Status = 0, IsExpanded = true }; GrowUp(ComponentTree, (List <Component>)Components); ReferenceComponentTree = new SimpleTreeView().ViewModel.MyTree; ReferenceComponentTree = new TreeNode { Name = "Reference Component Root", Status = 0, IsExpanded = true }; GrowUp(ReferenceComponentTree, (List <Component>)Components); }
void OnEnable() { if (simpleTreeView != null) { return; } var columns = new MultiColumnHeaderState.Column[] { new MultiColumnHeaderState.Column() { headerContent = new GUIContent("Name"), width = 500 }, new MultiColumnHeaderState.Column() { headerContent = new GUIContent("Bits"), width = 100, canSort = true } }; var header = new MultiColumnHeader(new MultiColumnHeaderState(columns)); treeViewState = new TreeViewState(); simpleTreeView = new SimpleTreeView(treeViewState, header); }
void OnGUI() { // The actual window code goes here Rect controlRect = new Rect(0, 0, 200, EditorGUIUtility.singleLineHeight); controlRect.y += controlRect.height; GUILayout.Label("Database", EditorStyles.boldLabel); string oldDb = DatabaseName; DatabaseName = EditorGUILayout.TextField("Database Name", DatabaseName); if (dbcon == null) { return; } else { if (!oldDb.Equals(DatabaseName)) { string connection = "URI=file:" + Application.persistentDataPath + "/" + DatabaseName; dbcon.Close(); dbcon = new SqliteConnection(connection); dbcon.Open(); } } List <string> tables = new List <string>(); IDataReader dbTables = getTables(dbcon); while (dbTables.Read()) { tables.Add(dbTables[1].ToString()); } tableIsEmpty = (tables.Count == 0); tableChanged = false; actionChanged = false; oldSelection = this._selected; this._selected = EditorGUILayout.Popup("Select Table", _selected, tables.ToArray()); if (oldSelection != this._selected) { tableChanged = true; action = 0; NewData.Clear(); } controlRect.y += controlRect.height; if (!tableIsEmpty) { currentTable = tables[_selected]; IDbCommand cmndRead = dbcon.CreateCommand(); IDataReader reader; string query = "SELECT * FROM " + tables[_selected]; cmndRead.CommandText = query; reader = cmndRead.ExecuteReader(); MultiColumnHeaderState.Column[] columns = new MultiColumnHeaderState.Column[reader.FieldCount]; fields = getFields(dbcon, tables[_selected]); for (int i = 0; i < fields.Count; i++) { columns[i] = new MultiColumnHeaderState.Column(); columns[i].headerContent = new GUIContent(fields[i]); } MultiColumnHeaderState headerstate = new MultiColumnHeaderState(columns); MultiColumnHeader header = new MultiColumnHeader(headerstate); if (m_SimpleTreeView == null || tableChanged) { m_SimpleTreeView = new SimpleTreeView(m_TreeViewState, header, reader, this); } } int oldAction = action; this.action = EditorGUILayout.Popup("Actions", this.action, actions); if (oldAction != this.action) { actionChanged = true; } if (action >= 0) { if (m_SimpleTreeView != null) { m_SimpleTreeView.SetAction(action); } if (action == viewing && actionChanged) { // tableChanged = true; } else if (action == Editing) { } else if (action == AddRow) { for (int i = 0; i < fields.Count; i++) { controlRect.y += controlRect.height; NewData.Add(""); NewData[i] = EditorGUILayout.TextField(fields[i], NewData[i]); } controlRect.y += controlRect.height + 50; if (GUI.Button(controlRect, "Add Data")) { string nonNullFields = ""; for (int i = 0; i < NewData.Count; i++) { if (!String.IsNullOrEmpty(NewData[i]) && NewData[i].Trim().Length > 0) { nonNullFields = nonNullFields + fields[i]; if (i < (fields.Count - 1)) { nonNullFields = nonNullFields + ", "; } } } string nonNullFieldValues = ""; for (int i = 0; i < NewData.Count; i++) { if (!String.IsNullOrEmpty(NewData[i]) && NewData[i].Trim().Length > 0) { nonNullFieldValues = nonNullFieldValues + "\"" + NewData[i] + "\""; if (i < (fields.Count - 1)) { nonNullFieldValues = nonNullFieldValues + ", "; } } } string command = "INSERT INTO " + tables[_selected] + " ( " + nonNullFields + " ) VALUES ( " + nonNullFieldValues + " )"; IDbCommand cmnd = dbcon.CreateCommand(); cmnd.CommandText = command; cmnd.ExecuteNonQuery(); action = 0; NewData.Clear(); tableChanged = true; } //controlRect.y += controlRect.height; } else if (action == NewTable) { EditorGUILayout.Space(20); controlRect.y += controlRect.height + 10; NewTableName = EditorGUILayout.TextField("New Table Name:", NewTableName); controlRect.y += controlRect.height; NewField filed0 = new NewField(); filed0.FieldName = "id"; filed0.FieldType = 0; //integer filed0.FieldName = EditorGUILayout.TextField("Field 0 (auto incremented)", filed0.FieldName); if (actionChanged) { newFileds = new List <NewField>(); newFileds.Add(filed0); } if (newFileds == null) { action = 0; } else { for (int i = 1; i < newFileds.Count; i++) { newFileds[i].FieldName = EditorGUILayout.TextField("Field " + i, newFileds[i].FieldName); newFileds[i].FieldType = EditorGUILayout.Popup("Field " + i + " Type", newFileds[i].FieldType, FieldType); controlRect.y += controlRect.height + 20; } } controlRect.y += controlRect.height + 60; if (GUI.Button(controlRect, "Add Field")) { NewField filed = new NewField(); newFileds.Add(filed); } controlRect.y += controlRect.height; if (GUI.Button(controlRect, "Create Table")) { CreateTable(); } } else if (action == DropTable) { controlRect.y += controlRect.height; GUILayout.Label("Note: This will delete the table and all of its contents, are you sure ?", EditorStyles.boldLabel); controlRect.y += controlRect.height + 20; if (GUI.Button(controlRect, "Delete Table")) { IDbCommand dbcmd = dbcon.CreateCommand(); string q_createTable = "DROP TABLE IF EXISTS " + currentTable; dbcmd.CommandText = q_createTable; dbcmd.ExecuteReader(); oldSelection = -1; action = 0; tableChanged = true; } } else if (action == EmptyTable) { controlRect.y += controlRect.height; GUILayout.Label("Note: This will clear all the data in this table, the table structure will remain unchanged. Are you sure you want to do this?", EditorStyles.boldLabel); controlRect.y += controlRect.height + 20; if (GUI.Button(controlRect, "Clear Table")) { IDbCommand dbcmd = dbcon.CreateCommand(); string q_createTable = "Delete FROM " + currentTable; dbcmd.CommandText = q_createTable; dbcmd.ExecuteReader(); oldSelection = -1; action = 0; tableChanged = true; } } else if (action == NewDatabase) { } else if (action == DeleteDatabase) { controlRect.y += controlRect.height; GUILayout.Label("Note: This will delete the entire database and its contents, are you sure ?", EditorStyles.boldLabel); controlRect.y += controlRect.height + 20; if (GUI.Button(controlRect, "Delete Database")) { File.Delete("URI=file:" + Application.persistentDataPath + "/" + DatabaseName); oldSelection = -1; action = 0; tableChanged = true; } } //action = 0; } controlRect.y += controlRect.height; float startY = controlRect.y + controlRect.height + 12; Rect r = new Rect(0, startY, position.width, position.height - startY); if (m_SimpleTreeView != null) { m_SimpleTreeView.OnGUI(r); } }