/// <summary> /// Dispose of connect actions. /// </summary> protected override void Dispose(bool disposing) { try { if(disposing) { if(this.manyToOneRelationshipConnectAction != null) { this.manyToOneRelationshipConnectAction.Dispose(); this.manyToOneRelationshipConnectAction = null; } if(this.manyToManyRelationshipConnectAction != null) { this.manyToManyRelationshipConnectAction.Dispose(); this.manyToManyRelationshipConnectAction = null; } if(this.oneToOneRelationshipConnectAction != null) { this.oneToOneRelationshipConnectAction.Dispose(); this.oneToOneRelationshipConnectAction = null; } if(this.nestedRelationshipConnectAction != null) { this.nestedRelationshipConnectAction.Dispose(); this.nestedRelationshipConnectAction = null; } this.UnsubscribeCompartmentItemsEvents(); } } finally { base.Dispose(disposing); } }
/// <summary> /// Override to provide the right mouse action when trying /// to create links on the diagram /// </summary> /// <param name="pointArgs"></param> public override void OnViewMouseEnter(DslDiagrams::DiagramPointEventArgs pointArgs) { if (pointArgs == null) throw new global::System.ArgumentNullException("pointArgs"); DslDiagrams::DiagramView activeView = this.ActiveDiagramView; if(activeView != null) { DslDiagrams::MouseAction action = null; if (activeView.SelectedToolboxItemSupportsFilterString(global::Altinoren.ActiveWriter.ActiveWriterToolboxHelper.ManyToOneRelationshipFilterString)) { if (this.manyToOneRelationshipConnectAction == null) { this.manyToOneRelationshipConnectAction = new global::Altinoren.ActiveWriter.ManyToOneRelationshipConnectAction(this); this.manyToOneRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.manyToOneRelationshipConnectAction; } else if (activeView.SelectedToolboxItemSupportsFilterString(global::Altinoren.ActiveWriter.ActiveWriterToolboxHelper.ManyToManyRelationshipFilterString)) { if (this.manyToManyRelationshipConnectAction == null) { this.manyToManyRelationshipConnectAction = new global::Altinoren.ActiveWriter.ManyToManyRelationshipConnectAction(this); this.manyToManyRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.manyToManyRelationshipConnectAction; } else if (activeView.SelectedToolboxItemSupportsFilterString(global::Altinoren.ActiveWriter.ActiveWriterToolboxHelper.OneToOneRelationshipFilterString)) { if (this.oneToOneRelationshipConnectAction == null) { this.oneToOneRelationshipConnectAction = new global::Altinoren.ActiveWriter.OneToOneRelationshipConnectAction(this); this.oneToOneRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.oneToOneRelationshipConnectAction; } else if (activeView.SelectedToolboxItemSupportsFilterString(global::Altinoren.ActiveWriter.ActiveWriterToolboxHelper.NestedRelationshipFilterString)) { if (this.nestedRelationshipConnectAction == null) { this.nestedRelationshipConnectAction = new global::Altinoren.ActiveWriter.NestedRelationshipConnectAction(this); this.nestedRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.nestedRelationshipConnectAction; } else { action = null; } if (pointArgs.DiagramClientView.ActiveMouseAction != action) { pointArgs.DiagramClientView.ActiveMouseAction = action; } } }