/// <summary> /// Called on a role player changing. /// </summary> /// <param name="args"></param> private void OnReferenceChanged(RolePlayerChangedEventArgs args) { SpecificElementsDiagramReferencesDomainClasses con = args.ElementLink as SpecificElementsDiagramReferencesDomainClasses; if (con != null) { if (args.DomainRole.Id == SpecificElementsDiagramReferencesDomainClasses.SpecificElementsDiagramDomainRoleId) { if (args.OldRolePlayerId == this.DiagramClassView.DiagramClass.Id) { RemoveReference(con.DomainClass); } if (args.NewRolePlayerId == this.DiagramClassView.DiagramClass.Id) { AddReference(con.DomainClass); } } else if (args.DomainRole.Id == SpecificElementsDiagramReferencesDomainClasses.DomainClassId) { if (args.OldRolePlayer != null) { RemoveReference(args.OldRolePlayer as DomainClass); } if (args.NewRolePlayer != null) { AddReference(args.NewRolePlayer as DomainClass); } } } }
/// <summary> /// Called whenever a relationship of type SpecificElementsDiagramReferencesDomainClasses is deleted and /// the element hosted by this model is the source. /// </summary> /// <param name="args"></param> private void OnReferenceRemoved(ElementDeletedEventArgs args) { SpecificElementsDiagramReferencesDomainClasses con = args.ModelElement as SpecificElementsDiagramReferencesDomainClasses; if (con != null) { RemoveReference(con.DomainClass); } }