예제 #1
0
        /// <summary>
        /// Read a category from the current reader record.
        /// </summary>
        internal static ElementBase ReadEntityRecord(SQLiteDataReader reader)
        {
            //"id, panelid, name, x, y, rotation, type, status"

            ElementBase record = ElementManager.CreateInstance(reader.GetInt32(6));

            record.ID = reader.GetInt32(0);
            record.SwitchboardPanel = new SwitchboardPanel(reader.GetInt32(1));
            record.Name             = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
            record.X        = reader.IsDBNull(3) ? 1 : reader.GetInt32(3);
            record.Y        = reader.IsDBNull(4) ? 1 : reader.GetInt32(4);
            record.Rotation = reader.IsDBNull(5) ? ElementBase.RotationStep.Step0 : (ElementBase.RotationStep)reader.GetInt32(5);

            if (ElementBase.IsAccessoryElement(record))
            {
                ((IAccessory)record).SetAccessoryStatus(reader.IsDBNull(7) ? ElementBase.STATUS_UNDEFINED : reader.GetInt32(7), false);
            }

            return(record);
        }
예제 #2
0
 /// <summary>
 /// Creates a element instance from the specified type.
 /// </summary>
 /// <param name="elementType">Element type corresponding of the enumeration type.</param>
 /// <returns>The requested instance.</returns>
 public static ElementBase CreateInstance(int elementType)
 {
     return(ElementManager.CreateInstance((ElementBase.ElementType)elementType));
 }