- Added IVR Tree sample
- Added Genogram sample
- Added Comments sample
- Added Pipes sample
- Added intro page about Diagram Images
- Added intro page about Local Printing
- Added intro page about Server-side Image Creation
- New property arguments for Diagram.makeImage and Diagram.makeImageData can now specify position, size, scale, and maxSize of the resulting Diagram image.
- Added Diagram.computePartsBounds method, to determine the area occupied by a collection of Parts.
- Fixed Diagram.zoomToFit not updating the document bounds first.
- Fixed Layer.findObjectsIn not always returning the results of the navigation function.
- Fixed picking of Shapes by Layer.findObjectsIn, where partial containment was incorrect.
- Added Node.findTreeParentLink, Node.findTreeParentNode, Node.findTreeChildrenLinks, Node.findTreeChildrenNodes, for your convenience in navigating a tree-structured diagram without worrying about Diagram.isTreePathToChildren. For example, see the updated Local View sample.
- Added Link.isLabeledLink property, equivalent to
link.labelNodes.count > 0
, but more convenient.
- Added Shape.geometryString property to more easily use SVG geometry path strings in your Parts.
- Added Shape.isGeometryPositioned property to position a Shape in a Position Panel ignoring the Shape.strokeWidth.
- Added PathSegment.SvgArc enum value to allow the creation of SVG-like arcs. Additionally, Geometry.parse now parses SVG "a" commands.
- Added Geometry.scale, Geometry.rotate, Geometry.offset, Geometry.normalize, Geometry.computeBoundsWithoutOrigin methods, for easier explicit manipulation of a Geometry.
- Fixed scaling of Geometrys that contain Bezier curves.
- Fixed TextBlock greeking (drawing lines instead of text at very small sizes) to be more accurately positioned.
- Added Panel.TableRow and Panel.TableColumn Panel types, for use as elements of a Panel of type Panel.Table. These are particularly useful as the Panel type of Panel.itemTemplate.
- Added support for Panel.itemArray elements in Panels of type Panel.Spot and Panel.Auto.
- Added TreeModel to allow creating tree-structured graphs without the use of separate link data objects. Many (but not all) samples involving trees have been updated to make use of a TreeModel.
- Added GraphLinksModel.archetypeNodeData for automatically adding a node data to a GraphLinksModel when there is an unresolved reference in a link data. For example, see the updated Beat Paths sample.
- Added Iterator.first method for your convenience.
- Changed TreeLayout.path to default to new value TreeLayout.PathDefault, which chooses logical tree direction based on Diagram.isTreePathToChildren.
- Fixed alignment of vertexes in layouts that use networks to be based on center of Part.locationObject, except for Groups which align to the center of the whole Group.
- Added CommandHandler.zoomToFit command, invoked by
Shift-Z
- Added DraggingTool.doDragOver, DraggingTool.doDropOnto, and DraggingTool.moveParts overridable methods, for easier implementation of custom dragging tools.
- Extended Tool.isBeyondDragSize to take two optional Point arguments, defaulting to the first and the last input points in view coordinates.
- ClickCreatingTool, when ClickCreatingTool.isDoubleClick, now checks that both click points are close to each other.
- Improved tools to select a selectable containing Group when a Part is not selectable.