public override void InvokeHandler(CommandSetState state) { var store = state.CurrentDocView.CurrentDiagram.Store; var addInheritanceForm = new AddInheritanceForm(store); if (addInheritanceForm.ShowDialog() == DialogResult.OK) { InheritanceUtil.AddInheritance(store, addInheritanceForm.baseClassComboBox.SelectedItem as string, addInheritanceForm.derivedClassComboBox.SelectedItem as string); } }
public void HandleElementAdded(object sender, ElementAddedEventArgs e) { if (ModelerTransaction.IsInTransaction) { return; } ModelerTransaction.Enter(() => { using (Transaction tx = (sender as Store).TransactionManager.BeginTransaction()) { if (e.ModelElement is ModelClass) { e.ModelElement.Delete(); var dlg = new AddEntityForm(sender as Store); dlg.ShowDialog(); } else if (e.ModelElement is Inheritance) { var inheritance = e.ModelElement as Inheritance; var baseClassName = inheritance.Superclass.Name; var derivedClassName = inheritance.Subclass.Name; inheritance.Delete(); InheritanceUtil.AddInheritance(sender as Store, baseClassName, derivedClassName); } else if (e.ModelElement is Association) { var assoc = e.ModelElement as Association; var dlg = new AddAssociationForm(sender as Store); dlg.SetSelectedClasses(assoc.Source, assoc.Target); assoc.Delete(); dlg.ShowDialog(); } else if (e.ModelElement is NavigationProperty) { var parentClass = (e.ModelElement as NavigationProperty).ModelClass; e.ModelElement.Delete(); var addAssociationForm = new AddAssociationForm(sender as Store); addAssociationForm.SetSelectedClasses(parentClass); addAssociationForm.ShowDialog(); } if (tx.HasPendingChanges) { tx.Commit(); } } }); }
private void okButton_Click(object sender, EventArgs e) { ModelerTransaction.Enter(() => { using (Transaction tx = _Store.TransactionManager.BeginTransaction()) { var entity = new ModelClass(_Store) { Name = entityNameTextBox.Text, TableName = entityNameTextBox.Text }; _Store.ElementDirectory.FindElements <ModelRoot>().Single().Types.Add(entity); if (baseClassComboBox.Text != "(None)") { var baseClass = _Store.ElementDirectory.FindElements <ModelClass>() .First(m => m.Name == baseClassComboBox.Text); InheritanceUtil.AddInheritance(baseClass, entity); } else if (createKeyCheckBox.Checked) { var propType = (BuiltInTypes)Enum.Parse(typeof(BuiltInTypes), propertyTypeComboBox.Text); entity.Fields.Add(new ModelField(_Store) { IsPrimaryKey = true, Name = propertyNameTextBox.Text, Type = (BuiltInTypes)Enum.Parse(typeof(BuiltInTypes), propertyTypeComboBox.Text), IsIdentity = true, IsDbGenerated = true, ColumnName = propertyNameTextBox.Text }); } tx.Commit(); } }); }