Connector GetConnector(ModelItem linkModelItem, ConnectionPoint srcConnPoint, ConnectionPoint destConnPoint) { Fx.Assert(this.panel != null, "This code should not be hit if panel is null"); ConnectorWithoutStartDot connector = new ConnectorWithoutStartDot(); connector.FocusVisualStyle = null; connector.Focusable = true; DesignerView.SetCommandMenuMode(connector, CommandMenuMode.NoCommandMenu); SetConnectorLabel(connector, srcConnPoint, linkModelItem); connector.GotKeyboardFocus += new KeyboardFocusChangedEventHandler(OnConnectorGotKeyboardFocus); connector.RequestBringIntoView += new RequestBringIntoViewEventHandler(OnConnectorRequestBringIntoView); connector.MouseDown += new MouseButtonEventHandler(OnConnectorMouseDown); connector.GotFocus += new RoutedEventHandler(OnConnectorGotFocus); SetConnectorSrcDestConnectionPoints(connector, srcConnPoint, destConnPoint); FlowchartDesigner.SetLinkModelItem(connector, linkModelItem); connector.Unloaded += new RoutedEventHandler(OnConnectorUnloaded); connector.AutoSplitContainer = this; return connector; }
Connector CreateConnector(ConnectionPoint srcConnPoint, ConnectionPoint destConnPoint, PointCollection points, ModelItem connectorModelItem) { bool isTransition = connectorModelItem != null && connectorModelItem.ItemType == typeof(Transition); Connector connector; if (isTransition) { connector = new ConnectorWithStartDot(); } else { connector = new ConnectorWithoutStartDot(); } connector.FocusVisualStyle = null; connector.Focusable = true; DesignerView.SetCommandMenuMode(connector, CommandMenuMode.NoCommandMenu); if (isTransition) { SetConnectorLabel(connector, connectorModelItem); SetConnectorStartDotToolTip(connector.StartDot, connectorModelItem); connector.HighlightOnHover = true; connector.ToolTip = new StateConnectionPointToolTip(); connector.StartDot.MouseDown += new MouseButtonEventHandler(OnConnectorStartDotMouseDown); connector.StartDot.MouseUp += new MouseButtonEventHandler(OnConnectorStartDotMouseUp); } AutomationProperties.SetName(connector, SR.ConnectionAutomationPropertiesName); connector.GotKeyboardFocus += new KeyboardFocusChangedEventHandler(OnConnectorGotKeyboardFocus); connector.RequestBringIntoView += new RequestBringIntoViewEventHandler(OnConnectorRequestBringIntoView); connector.GotFocus += new RoutedEventHandler(OnConnectorGotFocus); connector.MouseDoubleClick += new MouseButtonEventHandler(OnConnectorMouseDoubleClick); connector.MouseDown += new MouseButtonEventHandler(OnConnectorMouseDown); connector.KeyDown += new KeyEventHandler(OnConnectorKeyDown); connector.ContextMenuOpening += new ContextMenuEventHandler(OnConnectorContextMenuOpening); SetConnectorSrcDestConnectionPoints(connector, srcConnPoint, destConnPoint); StateContainerEditor.SetConnectorModelItem(connector, connectorModelItem); connector.Unloaded += new RoutedEventHandler(OnConnectorUnloaded); connector.Points = points; connector.AutoSplitContainer = this; if (connectorModelItem.ItemType == typeof(Transition)) { int srcConnectionPointIndex = StateContainerEditor.GetConnectionPoints(srcConnPoint.ParentDesigner).IndexOf(srcConnPoint); int destConnectionPointIndex = StateContainerEditor.GetConnectionPoints(destConnPoint.ParentDesigner).IndexOf(destConnPoint); this.ViewStateService.StoreViewState(connectorModelItem, SrcConnectionPointIndexStateKey, srcConnectionPointIndex); this.ViewStateService.StoreViewState(connectorModelItem, DestConnectionPointIndexStateKey, destConnectionPointIndex); } return connector; }