//TODO: difference between columns and reference columns + combo events public ForeignKeyConstraintEditorWidget (ISchemaProvider schemaProvider, SchemaActions action, ForeignKeyConstraintEditorSettings settings) { if (schemaProvider == null) throw new ArgumentNullException ("schemaProvider"); if (settings == null) throw new ArgumentNullException ("settings"); this.schemaProvider = schemaProvider; this.action = action; this.settings = settings; this.Build(); store = new ListStore (typeof (string), typeof (string), typeof (bool), typeof (string), typeof (string), typeof (string), typeof (string), typeof (object)); listFK.Model = store; storeActions = new ListStore (typeof (string), typeof (int)); storeTables = new ListStore (typeof (string), typeof(TableSchema)); if (settings.SupportsCascade) storeActions.AppendValues ("Cascade", (int)ForeignKeyAction.Cascade); if (settings.SupportsRestrict) storeActions.AppendValues ("Restrict", (int)ForeignKeyAction.Restrict); if (settings.SupportsNoAction) storeActions.AppendValues ("No Action", (int)ForeignKeyAction.NoAction); if (settings.SupportsSetNull) storeActions.AppendValues ("Set Null", (int)ForeignKeyAction.SetNull); if (settings.SupportsSetDefault) storeActions.AppendValues ("Set Default", (int)ForeignKeyAction.SetDefault); TreeViewColumn colName = new TreeViewColumn (); TreeViewColumn colRefTable = new TreeViewColumn (); TreeViewColumn colIsColumnConstraint = new TreeViewColumn (); TreeViewColumn colDeleteAction = new TreeViewColumn (); TreeViewColumn colUpdateAction = new TreeViewColumn (); colName.Title = AddinCatalog.GetString ("Name"); colRefTable.Title = AddinCatalog.GetString ("Reference Table"); colIsColumnConstraint.Title = AddinCatalog.GetString ("Column Constraint"); colDeleteAction.Title = AddinCatalog.GetString ("Delete Action"); colUpdateAction.Title = AddinCatalog.GetString ("Update Action"); colRefTable.MinWidth = 120; CellRendererText nameRenderer = new CellRendererText (); CellRendererCombo refTableRenderer = new CellRendererCombo (); CellRendererToggle isColumnConstraintRenderer = new CellRendererToggle (); CellRendererCombo deleteActionRenderer = new CellRendererCombo (); CellRendererCombo updateActionRenderer = new CellRendererCombo (); nameRenderer.Editable = true; nameRenderer.Edited += new EditedHandler (NameEdited); refTableRenderer.Model = storeTables; refTableRenderer.TextColumn = 0; refTableRenderer.Editable = true; refTableRenderer.Edited += new EditedHandler (RefTableEdited); deleteActionRenderer.Model = storeActions; deleteActionRenderer.TextColumn = 0; deleteActionRenderer.Editable = true; deleteActionRenderer.Edited += new EditedHandler (DeleteActionEdited); updateActionRenderer.Model = storeActions; updateActionRenderer.TextColumn = 0; updateActionRenderer.Editable = true; updateActionRenderer.Edited += new EditedHandler (UpdateActionEdited); colName.PackStart (nameRenderer, true); colRefTable.PackStart (refTableRenderer, true); colIsColumnConstraint.PackStart (isColumnConstraintRenderer, true); colDeleteAction.PackStart (deleteActionRenderer, true); colUpdateAction.PackStart (updateActionRenderer, true); colName.AddAttribute (nameRenderer, "text", colNameIndex); colRefTable.AddAttribute (refTableRenderer, "text", colReferenceTableIndex); colIsColumnConstraint.AddAttribute (isColumnConstraintRenderer, "active", colIsColumnConstraintIndex); colDeleteAction.AddAttribute (deleteActionRenderer, "text", colDeleteActionIndex); colUpdateAction.AddAttribute (updateActionRenderer, "text", colUpdateActionIndex); colIsColumnConstraint.Visible = false; listFK.AppendColumn (colName); listFK.AppendColumn (colRefTable); listFK.AppendColumn (colIsColumnConstraint); listFK.AppendColumn (colDeleteAction); listFK.AppendColumn (colUpdateAction); columnSelecter.ColumnToggled += new EventHandler (ColumnToggled); referenceColumnSelecter.ColumnToggled += new EventHandler (ReferenceColumnToggled); listFK.Selection.Changed += new EventHandler (SelectionChanged); ShowAll (); }
public ConstraintEditorSettings() { foreignKeySettings = new ForeignKeyConstraintEditorSettings(); checkSettings = new CheckConstraintEditorSettings(); }
public ConstraintEditorSettings () { foreignKeySettings = new ForeignKeyConstraintEditorSettings (); checkSettings = new CheckConstraintEditorSettings (); }
//TODO: difference between columns and reference columns + combo events public ForeignKeyConstraintEditorWidget(ISchemaProvider schemaProvider, SchemaActions action, ForeignKeyConstraintEditorSettings settings) { if (schemaProvider == null) { throw new ArgumentNullException("schemaProvider"); } if (settings == null) { throw new ArgumentNullException("settings"); } this.schemaProvider = schemaProvider; this.action = action; this.settings = settings; this.Build(); store = new ListStore(typeof(string), typeof(string), typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(object)); listFK.Model = store; storeActions = new ListStore(typeof(string), typeof(int)); storeTables = new ListStore(typeof(string), typeof(TableSchema)); if (settings.SupportsCascade) { storeActions.AppendValues("Cascade", (int)ForeignKeyAction.Cascade); } if (settings.SupportsRestrict) { storeActions.AppendValues("Restrict", (int)ForeignKeyAction.Restrict); } if (settings.SupportsNoAction) { storeActions.AppendValues("No Action", (int)ForeignKeyAction.NoAction); } if (settings.SupportsSetNull) { storeActions.AppendValues("Set Null", (int)ForeignKeyAction.SetNull); } if (settings.SupportsSetDefault) { storeActions.AppendValues("Set Default", (int)ForeignKeyAction.SetDefault); } TreeViewColumn colName = new TreeViewColumn(); TreeViewColumn colRefTable = new TreeViewColumn(); TreeViewColumn colIsColumnConstraint = new TreeViewColumn(); TreeViewColumn colDeleteAction = new TreeViewColumn(); TreeViewColumn colUpdateAction = new TreeViewColumn(); colName.Title = AddinCatalog.GetString("Name"); colRefTable.Title = AddinCatalog.GetString("Reference Table"); colIsColumnConstraint.Title = AddinCatalog.GetString("Column Constraint"); colDeleteAction.Title = AddinCatalog.GetString("Delete Action"); colUpdateAction.Title = AddinCatalog.GetString("Update Action"); colRefTable.MinWidth = 120; CellRendererText nameRenderer = new CellRendererText(); CellRendererCombo refTableRenderer = new CellRendererCombo(); CellRendererToggle isColumnConstraintRenderer = new CellRendererToggle(); CellRendererCombo deleteActionRenderer = new CellRendererCombo(); CellRendererCombo updateActionRenderer = new CellRendererCombo(); nameRenderer.Editable = true; nameRenderer.Edited += new EditedHandler(NameEdited); refTableRenderer.Model = storeTables; refTableRenderer.TextColumn = 0; refTableRenderer.Editable = true; refTableRenderer.Edited += new EditedHandler(RefTableEdited); deleteActionRenderer.Model = storeActions; deleteActionRenderer.TextColumn = 0; deleteActionRenderer.Editable = true; deleteActionRenderer.Edited += new EditedHandler(DeleteActionEdited); updateActionRenderer.Model = storeActions; updateActionRenderer.TextColumn = 0; updateActionRenderer.Editable = true; updateActionRenderer.Edited += new EditedHandler(UpdateActionEdited); colName.PackStart(nameRenderer, true); colRefTable.PackStart(refTableRenderer, true); colIsColumnConstraint.PackStart(isColumnConstraintRenderer, true); colDeleteAction.PackStart(deleteActionRenderer, true); colUpdateAction.PackStart(updateActionRenderer, true); colName.AddAttribute(nameRenderer, "text", colNameIndex); colRefTable.AddAttribute(refTableRenderer, "text", colReferenceTableIndex); colIsColumnConstraint.AddAttribute(isColumnConstraintRenderer, "active", colIsColumnConstraintIndex); colDeleteAction.AddAttribute(deleteActionRenderer, "text", colDeleteActionIndex); colUpdateAction.AddAttribute(updateActionRenderer, "text", colUpdateActionIndex); colIsColumnConstraint.Visible = false; listFK.AppendColumn(colName); listFK.AppendColumn(colRefTable); listFK.AppendColumn(colIsColumnConstraint); listFK.AppendColumn(colDeleteAction); listFK.AppendColumn(colUpdateAction); columnSelecter.ColumnToggled += new EventHandler(ColumnToggled); referenceColumnSelecter.ColumnToggled += new EventHandler(ReferenceColumnToggled); listFK.Selection.Changed += new EventHandler(SelectionChanged); ShowAll(); }