public override void OnGUI(Rect rect) { GUILayout.Label("Create Column", EditorStyles.boldLabel); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Title:", GUILayout.Width(labelWidth)); _columnTitle = EditorGUILayout.TextField(_columnTitle, GUILayout.Width(fieldWidth)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Data Type:", GUILayout.Width(labelWidth)); _dataType = (E_DATA_TYPE)EditorGUILayout.EnumPopup(_dataType, GUILayout.Width(fieldWidth)); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("OK", GUILayout.Width(80))) { if (createColumnAction != null) { createColumnAction(_columnTitle, _dataType, _curIndex + 1); } editorWindow.Close(); } if (GUILayout.Button("Cancel", GUILayout.Width(80))) { editorWindow.Close(); } EditorGUILayout.EndHorizontal(); }
public Type getColumnType(E_DATA_TYPE dataType) { for (int i = 0; i < sheetDataSet.Count; i++) { if (sheetDataSet[i].eType == dataType) { return(sheetDataSet[i].columnType); } } return(null); }
/// <summary> /// add a new column /// </summary> public void insertColumn(string name, E_DATA_TYPE dataType, int index = -1) { if (String.IsNullOrEmpty(name)) { Debug.LogError("Invalid title name!"); return; } if (_table.ContainsKey(name)) { Debug.LogError("Add Column Error: title name exists"); return; } //反射创建一个IColumnData Type columnType = DataTypeManager.instance.getColumnType(dataType); if (columnType != null) { IColumnData newColumn = (IColumnData)Activator.CreateInstance(columnType, new object[] { rowCount }); newColumn.title = name; _table.Add(name, newColumn); _columnData.typeEntryMap[dataType].Add(newColumn); //插入title if (index >= 0 && index < _titles.Count) { _titles.Insert(index, name); } else { _titles.Add(name); } } }
public SheetDataSet(E_DATA_TYPE eType, Type dataType, Type columnType) { this.eType = eType; this.dataType = dataType; this.columnType = columnType; }