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; }
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)); }
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); }
private void OnRowClicked(object sender, EventArgs e) { if (selectedRow != null) { selectedRow.SetSelected(false); } selectedRow = (DataTableRow)sender; selectedRow.SetSelected(true); idbox = selectedRow.key; OnSearchUpdated(); Repaint(); }
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; }
private int SortKeys(DataTableRow x, DataTableRow y) { return(x.key.CompareTo(y.key)); }