protected void InitExpandColumn(List <Column> baseColumn) { //create columns m_Columns = new List <Column>(m_Meta.GetColumnCount()); for (int i = 0; i != m_Meta.GetColumnCount(); ++i) { var metaCol = m_Meta.GetColumnByIndex(i); IExpandColumn newCol = (IExpandColumn)Database.Operation.ColumnCreator.CreateColumn(typeof(ExpandColumnTyped <>), metaCol.Type.scriptingType); newCol.Initialize(this, baseColumn[i], i); m_Columns.Add((Column)newCol); } }
public void SetColumn(MetaColumn metaColumn, Column newColumn) { //add missing columns if the meta column index does not fit in table's column list int missingColumnCount = metaColumn.Index - m_Columns.Count + 1; if (missingColumnCount > 0) { m_Columns.AddRange(Enumerable.Range(0, missingColumnCount).Select(x => (Column)null)); } if (metaColumn.Type.scriptingType != null) { IExpandColumn newExpandColumn = (IExpandColumn)Database.Operation.ColumnCreator.CreateColumn(typeof(ExpandColumnTyped <>), metaColumn.Type.scriptingType); newExpandColumn.Initialize(this, newColumn, metaColumn.Index); m_Columns[metaColumn.Index] = (Column)newExpandColumn; } else { m_Columns[metaColumn.Index] = new ColumnError(this); Debug.LogError("Cannot create column '" + GetName() + "." + metaColumn.Name + "'. Type is unknown (null)"); } }