public void Run(ActiveRecordDescriptor descriptor) { using (NewSubClassDialog dialog = new NewSubClassDialog()) { if (dialog.ShowDialog(Workspace.ActiveWindow) == DialogResult.OK) { ActiveRecordDescriptorSubClass subclass = new ActiveRecordDescriptorSubClass(descriptor); subclass.Table = descriptor.Table; subclass.DiscriminatorValue = dialog.DiscriminatorValue; subclass.ClassName = dialog.ClassName; Model.CurrentProject.AddActiveRecordDescriptor(subclass); Model.Update(); } } }
private void CreateConnectionsIfNecessary(Shape shape) { ActiveRecordShape arshape = shape as ActiveRecordShape; if (arshape != null) { if (arshape.ActiveRecordDescriptor is ActiveRecordDescriptorSubClass) { ActiveRecordDescriptorSubClass subclass = arshape.ActiveRecordDescriptor as ActiveRecordDescriptorSubClass; ConnectSubToSuperClass(ObtainShape(subclass.BaseClass), shape); } else { ConnectSubToSuperClass(ObtainBaseShape(arshape), shape); } } }