using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; namespace SQLite.Designer.Design { [TypeConverter(typeof(ExpandableObjectConverter))] internal class PrimaryKey { private bool _primaryKey; private bool _autoIncrement; private IndexDirection _direction; private ConflictEnum _conflict; Column _column; internal PrimaryKey(Column col) { _column = col; } [RefreshProperties(RefreshProperties.All)] [DefaultValue(false)] public bool Enabled { get { return _primaryKey; } set { _primaryKey = value; if (_primaryKey == false) AutoIncrement = false; _column.RefreshGrid(); } } [RefreshProperties(RefreshProperties.All)] [DefaultValue(false)] [DisplayName("Auto Increment")] public bool AutoIncrement { get { return _autoIncrement; } set { if (_primaryKey == false && value == true) Enabled = true; _autoIncrement = value; } } [DefaultValue(ConflictEnum.Abort)] [DisplayName("On Conflict")] public ConflictEnum Conflict { get { return _conflict; } set { _conflict = value; } } [DefaultValue(IndexDirection.Ascending)] [DisplayName("Sort Mode")] public IndexDirection SortMode { get { return _direction; } set { _direction = value; } } public override string ToString() { return Enabled.ToString(); } } internal enum IndexDirection { Ascending = 0, Descending = 1, } }