This article describes the breaking changes introduced in the RadDiagram framework.
- IConnector now inherits ISerializable interface by default
What to do now:
If you implement IConnector interface in your solution to create a custom connector, you will have to extend your implementation to also implement the ISerializable interface.
During Q1 2013 we worked on improving our RadDiagram and especially the RadDiagramConnections. We added a connection editing points which you can easily set programmatically or manually with Ctrl + MouseClick.
Below you can find the breaking changes related to connections:
Straight connection type is marked Obsolete. Instead of it, you can use Polyline connection type which is straight by default.
RoundedPolyline connection type is marked Obsolete. The way to achieve the rounded connection effect is to use the Polyline connection type and set the ConnectionRoundedCorners property of the RadDiagram to True.
Routing of the Polyline connections is not automatic anymore. The way to turn on the routing is setting the RouteConnections property of the RadDiagram to True.
Bezier Handle Points are not initially positioned in the middle of the distance between the start and end of the connection. To position them , you can use the BezierAutoOffset DiagramConstant or the method SetBezierHandles of the RadDiagramConnnection class. The DiagramConstant BezierHandleMinimumDistance is removed. You should use only BezierAutoOffset.
We also improved our MVVM mechanism and the following method should not be used when using SerializableGraphSourceBase.
GetLinkUniqueId method is removed. Now you don't need to provide a unique id for the links - this is done automatically.
In Q1 2013 our RadDiagramContainerShapes are also refactored. We added style and style selectors properties and we also improved the drop behavior. The ContainerLayout property is marked Obsolete and you can consider that it is always set to Auto.
The Print Command from DiagramCommands is marked Obsolete. You have to use the Print Command from Telerik.Windows.Controls.Diagrams.Extensions.DiagramExtensionCommands. Setting its CommandParameter to True will activate our PrintPreviewDialog from the Diagram Extensions.
GeometryFactory class is marked Obsolete and will be deleted in Q2 2013. The methods in it are also available in the class GeometryExtensions.
With the Q3 2012 release we introduced the following set of changes in the Diagramming Framework:
The CommandNames.ResizeShape constant is now renamed to CommandNames.ResizeItem.
The CommandNames.ResizeShapes constant is now renamed to CommandNames.ResizeItems.
The order of the arguments in the RotatingEventArgs class constructor - RotatingEventArgs(Double oldPosition, Double newPosition, are changed to RotatingEventArgs
The RotateRoutedEventArgs class constructor - RotateRoutedEventArgs(RoutedEvent routedEvent, IEnumerable
items, Double oldPostion, Double newPostion)is removed. You can instead use the other constructors of the class to create an instance of it.
With this release we significantly improved the implementation, performance and extensibility of the RadDiagramRuler. However, we couldn't have done that without introducing some changes in its definition. You can take a look at the new implementation and features of the control in the Ruler article. However, if you've used its old version, please bear in mind that we've removed the following RadDiagramRuler properties:
Due to the improvements in the control, the following classes are no more needed and therefore we removed their definitions:
And we changed the name of the device-independent pixels measurement unit from MeasurementUnit.DIP to MeasurementUnit.Dip.
With its official release, the Diagramming framework extends its Connectors support by adding the possibility to create custom connectors. However, in order to implement this feature we had to remove the ConnectorPosition enumeration. Instead the position of a connector can now be defined through a string property. But as we wanted to limit the effect of this breaking change, we matched the members of the enumeration to string constants, which are internally resolved to allow you to set up the RadDiagramConnection.Source(Target)ConnectorPosition as Auto, Left, Right, Top or Bottom as before. Below you can find all RadDiagram members affected by the changes in the connectors implementation:
The ConnectorPosition enumeration is removed
The AddConnection(source, target, sourceConnectorPosition, targetConnectorPosition, isUndoable) method arguments are changed as follows:
sourceConnectorPosition argument type is changed to string
targetConnectorPosition argument type is changed to string
The AddConnection(source, target, connectorsPosition) method arguments are changed as follows:
- connectorsPosition argument type is changed to string
The Attach(source, sourceConnectorPosition, target, targetConnectorPosition) method arguments are changed so that it now takes only two arguments:
Source argument of type IConnector
Target argument of type IConnector
GetConnectionsForShape(shape) method is removed
GetIncomingConnectionsForShape(shape) method is removed
GetOutgoingConnectionsForShape(shape) method is removed
RadDiagramConnection.SourceConnectorPosition type is changed to string
RadDiagramConnection.TargetConnectorPosition type is changed to string
The other changes introduced in the Diagramming tools' implementation are listed below:
RadDiagram.IsSnapEnabled property is removed. Instead two new properties are introduced:
RadDiagram.PositionX and RadDiagram.PositionY properties are removed. Instead one new property is introduced:
- Point Position
RadDiagram.SnapValue is removed. Instead two new properties are introduced:
RadDiagram.Layout(settings) method arguments are changed so that now the method has two arguments:
RadDiagramShapeBase.ConnectorActivated event is removed. Instead you can handle the RadDiagramConnector.ActivationChanged event.
RadDiagramShapeBase.ConnectorPoints collection is removed. Instead you can use the RadDiagramShapeBase.Connectors collection
The Xml property of the RadDiagramShapeBase is removed. Instead you should use the GetXml() method. The reason behind this change is to avoid the performance impact when using the getter of the property.