Example #1
0
        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);
            }
        }
Example #2
0
        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)");
            }
        }