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