示例#1
0
 private void OnEnable()
 {
     if (_treeViewState == null)
     {
         _treeViewState = new TreeViewState();
     }
     _simpleTreeView = new SimpleTreeView(_treeViewState);
 }
示例#2
0
    void OnEnable()
    {
        EnsureSpriteCollection();

        if (_treeViewState == null)
        {
            _treeViewState = new TreeViewState();
        }

        _simpleTreeView = new SimpleTreeView(_treeViewState);
    }
示例#3
0
    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);
    }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
    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);
        }
    }