/// <summary>
            /// Called by the base ConnectAction class to create the underlying relationship.
            /// </summary>
            /// <remarks>
            /// This implementation delegates calls to the ConnectionBuilder TabReferencesTargetTabbedBuilder.
            /// </remarks>
            public override void CreateConnection(DslDiagrams::ShapeElement sourceShapeElement, DslDiagrams::ShapeElement targetShapeElement, DslDiagrams::PaintFeedbackArgs paintFeedbackArgs)
            {
                if (sourceShapeElement == null)
                {
                    throw new global::System.ArgumentNullException("sourceShapeElement");
                }
                if (targetShapeElement == null)
                {
                    throw new global::System.ArgumentNullException("targetShapeElement");
                }

                sourceShapeElement = RemovePassThroughShapes(sourceShapeElement);
                targetShapeElement = RemovePassThroughShapes(targetShapeElement);

                DslModeling::ModelElement sourceElement = sourceShapeElement.ModelElement;

                if (sourceElement == null)
                {
                    sourceElement = sourceShapeElement;
                }
                DslModeling::ModelElement targetElement = targetShapeElement.ModelElement;

                if (targetElement == null)
                {
                    targetElement = targetShapeElement;
                }
                TabReferencesTargetTabbedBuilder.Connect(sourceElement, targetElement);
            }