internal static void RolePlayerChanged(DslModeling::RolePlayerChangedEventArgs e, bool repaintOnly) { if (e == null) { throw new global::System.ArgumentNullException("e"); } if (typeof(global::EPAM.NHModelingLanguage.EntityHasProperties).IsAssignableFrom(e.DomainRelationship.ImplementationClass)) { if (e.DomainRole.IsSource) { //global::System.Collections.IEnumerable oldElements = CompartmentItemAddRule.GetEntityForEntityShapePropertiesFromLastLink((global::EPAM.NHModelingLanguage.Property)e.OldRolePlayer); //foreach(DslModeling::ModelElement element in oldElements) //{ // DslModeling::LinkedElementCollection<DslDiagrams::PresentationElement> pels = DslDiagrams::PresentationViewsSubject.GetPresentation(element); // foreach(DslDiagrams::PresentationElement pel in pels) // { // global::EPAM.NHModelingLanguage.EntityShape compartmentShape = pel as global::EPAM.NHModelingLanguage.EntityShape; // if(compartmentShape != null) // { // compartmentShape.GetCompartmentMappings()[0].InitializeCompartmentShape(compartmentShape); // } // } //} global::System.Collections.IEnumerable elements = CompartmentItemAddRule.GetEntityForEntityShapePropertiesFromLastLink((global::EPAM.NHModelingLanguage.EntityHasProperties)e.ElementLink); CompartmentItemAddRule.UpdateCompartments(elements, typeof(global::EPAM.NHModelingLanguage.EntityShape), "Properties", repaintOnly); } else { global::System.Collections.IEnumerable elements = CompartmentItemAddRule.GetEntityForEntityShapeProperties((global::EPAM.NHModelingLanguage.Property)e.NewRolePlayer); CompartmentItemAddRule.UpdateCompartments(elements, typeof(global::EPAM.NHModelingLanguage.EntityShape), "Properties", repaintOnly); } } }
internal static void RolePlayerChanged(DslModeling::RolePlayerChangedEventArgs e, bool repaintOnly) { if (e == null) { throw new global::System.ArgumentNullException("e"); } if (typeof(global::ORMSolutions.ORMArchitect.RelationalModels.ConceptualDatabase.TableContainsColumn).IsAssignableFrom(e.DomainRelationship.ImplementationClass)) { if (e.DomainRole.IsSource) { //global::System.Collections.IEnumerable oldElements = CompartmentItemAddRule.GetTableForTableShapeColumnsCompartmentFromLastLink((global::ORMSolutions.ORMArchitect.RelationalModels.ConceptualDatabase.Column)e.OldRolePlayer); //foreach(DslModeling::ModelElement element in oldElements) //{ // DslModeling::LinkedElementCollection<DslDiagrams::PresentationElement> pels = DslDiagrams::PresentationViewsSubject.GetPresentation(element); // foreach(DslDiagrams::PresentationElement pel in pels) // { // global::ORMSolutions.ORMArchitect.Views.RelationalView.TableShape compartmentShape = pel as global::ORMSolutions.ORMArchitect.Views.RelationalView.TableShape; // if(compartmentShape != null) // { // compartmentShape.GetCompartmentMappings()[0].InitializeCompartmentShape(compartmentShape); // } // } //} global::System.Collections.IEnumerable elements = CompartmentItemAddRule.GetTableForTableShapeColumnsCompartmentFromLastLink((global::ORMSolutions.ORMArchitect.RelationalModels.ConceptualDatabase.TableContainsColumn)e.ElementLink); CompartmentItemAddRule.UpdateCompartments(elements, typeof(global::ORMSolutions.ORMArchitect.Views.RelationalView.TableShape), "ColumnsCompartment", repaintOnly); } else { global::System.Collections.IEnumerable elements = CompartmentItemAddRule.GetTableForTableShapeColumnsCompartment((global::ORMSolutions.ORMArchitect.RelationalModels.ConceptualDatabase.Column)e.NewRolePlayer); CompartmentItemAddRule.UpdateCompartments(elements, typeof(global::ORMSolutions.ORMArchitect.Views.RelationalView.TableShape), "ColumnsCompartment", repaintOnly); } } }
/// <summary> /// Reroute a connector when the role players of its underlying relationship change /// </summary> public override void RolePlayerChanged(DslModeling::RolePlayerChangedEventArgs e) { if (e == null) { throw new global::System.ArgumentNullException("e"); } global::System.Collections.ObjectModel.ReadOnlyCollection <DslDiagrams::PresentationViewsSubject> connectorLinks = DslDiagrams::PresentationViewsSubject.GetLinksToPresentation(e.ElementLink); foreach (DslDiagrams::PresentationViewsSubject connectorLink in connectorLinks) { // Fix up any binary link shapes attached to the element link. DslDiagrams::BinaryLinkShape linkShape = connectorLink.Presentation as DslDiagrams::BinaryLinkShape; if (linkShape != null) { global::Microsoft.Practices.ServiceFactory.HostDesigner.HostDesignerDiagram diagram = linkShape.Diagram as global::Microsoft.Practices.ServiceFactory.HostDesigner.HostDesignerDiagram; if (diagram != null) { if (e.NewRolePlayer != null) { DslDiagrams::NodeShape fromShape; DslDiagrams::NodeShape toShape; diagram.GetSourceAndTargetForConnector(linkShape, out fromShape, out toShape); if (fromShape != null && toShape != null) { if (!object.Equals(fromShape, linkShape.FromShape)) { linkShape.FromShape = fromShape; } if (!object.Equals(linkShape.ToShape, toShape)) { linkShape.ToShape = toShape; } } else { // delete the connector if we cannot find an appropriate target shape. linkShape.Delete(); } } else { // delete the connector if the new role player is null. linkShape.Delete(); } } } } }
/// <summary> /// Called when the roleplayer on a link changes. /// </summary> /// <param name="e"></param> public override void RolePlayerChanged(DslModeling::RolePlayerChangedEventArgs e) { RolePlayerChanged(e, false); }
/// <summary> /// Event for role-player changed. /// </summary> private void CompartmentItemRolePlayerChanged(object sender, DslModeling::RolePlayerChangedEventArgs e) { bool repaintOnly = !e.ElementLink.Store.InUndoRedoOrRollback; CompartmentItemRolePlayerChangeRule.RolePlayerChanged(e, repaintOnly); }
/// <summary> /// Event for role-player changed. /// </summary> private void CompartmentItemRolePlayerChanged(object sender, DslModeling::RolePlayerChangedEventArgs e) { CompartmentItemRolePlayerChangeRule.RolePlayerChanged(e, true /* repaint only */); }