コード例 #1
0
        private void AddAction()
        {
            if (Event.current.type == EventType.Layout && addAction)
            {
                if (string.IsNullOrEmpty(idbox) || datatable.ContainsKey(idbox))
                {
                    int y = 1;
                    idbox = "NewEntry";
                    while (datatable.ContainsKey(idbox))
                    {
                        idbox = "NewEntry_" + y;
                        y++;
                    }
                }

                //todo CTRL - Z
                DataTableRow uir = CreateRow(idbox, null);
                uir.Clicked += OnRowClicked;
                datatable.SetEntry(idbox, null);
                rows.Add(uir);
                EditorUtility.SetDirty((ScriptableObject)datatable);
                GUI.FocusControl("");
                OnSearchUpdated();
                RefreshRowSizes();
                Repaint();
                OnRowClicked(uir, EventArgs.Empty);
            }

            addAction = false;
        }
コード例 #2
0
        private int SortSelected(DataTableRow x, DataTableRow y)
        {
            string A = selectedField.GetValue(x.row)?.ToString();
            string B = selectedField.GetValue(y.row)?.ToString();

            return(A.CompareTo(B));
        }
コード例 #3
0
        private DataTableRow CreateRow(string key, ScriptableObject obj)
        {
            DataTableRow r = new DataTableRow(headers.Count, obj, key);

            r.AppendColumn(ColumnType);
            r.AppendColumn(ColumnName);
            r.AppendColumn(ColumnPath);
            r.Clicked += OnRowClicked;
            return(r);
        }
コード例 #4
0
 private void OnRowClicked(object sender, EventArgs e)
 {
     if (selectedRow != null)
     {
         selectedRow.SetSelected(false);
     }
     selectedRow = (DataTableRow)sender;
     selectedRow.SetSelected(true);
     idbox = selectedRow.key;
     OnSearchUpdated();
     Repaint();
 }
コード例 #5
0
        private void DeleteAction()
        {
            if (Event.current.type == EventType.Layout && deleteAction)
            {
                datatable.DeleteEntry(selectedRow.key);
                EditorUtility.SetDirty((ScriptableObject)datatable);
                int index = rows.IndexOf(selectedRow);
                rows.Remove(selectedRow);
                if (rows.Count > index - 1 && rows.Count != 0)
                {
                    OnRowClicked(rows[index - 1], EventArgs.Empty);
                }
                else
                {
                    selectedRow = null;
                    idbox       = "";
                    OnSearchUpdated();
                    Repaint();
                }
            }

            deleteAction = false;
        }
コード例 #6
0
 private int SortKeys(DataTableRow x, DataTableRow y)
 {
     return(x.key.CompareTo(y.key));
 }