/// <summary> /// Dispose of connect actions. /// </summary> protected override void Dispose(bool disposing) { try { if(disposing) { if(this.commandRelationshipConnectAction != null) { this.commandRelationshipConnectAction.Dispose(); this.commandRelationshipConnectAction = null; } if(this.aggregateStateRelationshipConnectAction != null) { this.aggregateStateRelationshipConnectAction.Dispose(); this.aggregateStateRelationshipConnectAction = null; } if(this.eventRelationshipConnectAction != null) { this.eventRelationshipConnectAction.Dispose(); this.eventRelationshipConnectAction = 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 (SelectedToolboxItemSupportsFilterString(activeView, global::FourDeep.Dizzle.DizzleToolboxHelper.CommandRelationshipFilterString)) { if (this.commandRelationshipConnectAction == null) { this.commandRelationshipConnectAction = new global::FourDeep.Dizzle.CommandRelationshipConnectAction(this); this.commandRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.commandRelationshipConnectAction; } else if (SelectedToolboxItemSupportsFilterString(activeView, global::FourDeep.Dizzle.DizzleToolboxHelper.AggregateStateRelationshipFilterString)) { if (this.aggregateStateRelationshipConnectAction == null) { this.aggregateStateRelationshipConnectAction = new global::FourDeep.Dizzle.AggregateStateRelationshipConnectAction(this); this.aggregateStateRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.aggregateStateRelationshipConnectAction; } else if (SelectedToolboxItemSupportsFilterString(activeView, global::FourDeep.Dizzle.DizzleToolboxHelper.EventRelationshipFilterString)) { if (this.eventRelationshipConnectAction == null) { this.eventRelationshipConnectAction = new global::FourDeep.Dizzle.EventRelationshipConnectAction(this); this.eventRelationshipConnectAction.MouseActionDeactivated += new DslDiagrams::MouseAction.MouseActionDeactivatedEventHandler(OnConnectActionDeactivated); } action = this.eventRelationshipConnectAction; } else { action = null; } if (pointArgs.DiagramClientView.ActiveMouseAction != action) { try { this.changingMouseAction = true; pointArgs.DiagramClientView.ActiveMouseAction = action; } finally { this.changingMouseAction = false; } } } }