Inherit and use a custom line connector in the Diagram

Applies to: Nevron Diagram for .NET

How to inherit and use a custom line connector in Nevron Diagram?

The right way to create your own type of connector is to override the CreateElement method of the connector tool. In fact it currently only calls the respective methods of the diagram elements factory of the view, which simply creates a new instance of the desired element:

[C#]
protected override INDiagramElement CreateElement(bool preview)
{
    NDiagramElementFactory factory = m_View.ElementFactory;
  
    switch (m_ConnectorType)
    {
        case ConnectorType.Line:
            return factory.CreateLineConnector(preview);
  
        case ConnectorType.Bezier:
            return factory.CreateBezierConnector(preview);
  
        case ConnectorType.SingleArrow:
            return factory.CreateArrowConnector(preview, ArrowType.SingleArrow);
  
        case ConnectorType.DoubleArrow:
            return factory.CreateArrowConnector(preview, ArrowType.DoubleArrow);
                                                
        case ConnectorType.SideToTopBottom:
            return factory.CreateStep2Connector(preview, false);
  
        case ConnectorType.TopBottomToSide:
            return factory.CreateStep2Connector(preview, true);
  
        case ConnectorType.SideToSide:
            return factory.CreateStep3Connector(preview, false);
  
        case ConnectorType.TopToBottom:
            return factory.CreateStep3Connector(preview, true);
  
        case ConnectorType.DynamicHV:
            return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicHV);
  
        case ConnectorType.DynamicPolyline:
            return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicPolyline);
  
        case ConnectorType.DynamicCurve:
            return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicCurve);
  
        default:
            Debug.Assert(false, "New connector type?");
            break;
    }
  
    return null;
}

[VB.NET]
Protected Overrides Function CreateElement(preview As Boolean) As INDiagramElement
    Dim factory As NDiagramElementFactory = m_View.ElementFactory
  
    Select Case m_ConnectorType
        Case ConnectorType.Line
            Return factory.CreateLineConnector(preview)
  
        Case ConnectorType.Bezier
            Return factory.CreateBezierConnector(preview)
  
        Case ConnectorType.SingleArrow
            Return factory.CreateArrowConnector(preview, ArrowType.SingleArrow)
  
        Case ConnectorType.DoubleArrow
            Return factory.CreateArrowConnector(preview, ArrowType.DoubleArrow)
  
        Case ConnectorType.SideToTopBottom
            Return factory.CreateStep2Connector(preview, False)
  
        Case ConnectorType.TopBottomToSide
            Return factory.CreateStep2Connector(preview, True)
  
        Case ConnectorType.SideToSide
            Return factory.CreateStep3Connector(preview, False)
  
        Case ConnectorType.TopToBottom
            Return factory.CreateStep3Connector(preview, True)
  
        Case ConnectorType.DynamicHV
            Return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicHV)
  
        Case ConnectorType.DynamicPolyline
            Return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicPolyline)
  
        Case ConnectorType.DynamicCurve
            Return factory.CreateRoutableConnector(preview, RoutableConnectorType.DynamicCurve)
        Case Else
  
            Debug.Assert(False, "New connector type?")
            Exit Select
    End Select
  
    Return Nothing
End Function

Article ID: 31, Created On: 10/5/2010, Modified: 11/15/2010