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