MindFusion.Diagramming for ASP.NET V7.0

Released: Jan 12, 2023

Updates in V7.0

Features

  • Client side scripts have been refactored to use ES6 classes, properties and native collections.
  • The Diagram JavaScript class has been refactored into separate 'Diagram' and 'DiagramView' classes.
  • New 'TreeViewNode' class represents nodes that can display hierarchical data.
  • New 'printPreview' and 'print' methods let you export a diagram as a list of smaller images in an HTML page.
  • New 'RadialTreeLayout' class arranges tree levels in concentric circles around the root.
  • 'TopologicalLayout' and 'OrthogonalLayout' can now be applied on the client-side.
  • New 'NodeLabel' class allows multiple captions to be displayed for a single 'DiagramNode' of any type.
  • Enabling 'MultiTouchZoom' allows the view to be zoomed or panned using two-touch pinch/flick gestures.
  • 'MultiTouchModify' property enables diagram nodes to be moved, scaled and rotated using two-touch pinch/flick gestures.
  • Each touch can now draw diagram items corresponding to current behavior.
  • Each touch started from a node now draws a diagram link.
  • New 'MultiTouchDraw' lets you prevent drawing multiple items simultaneously, while keeping other multitouch gestures enabled.
  • New 'HandleTouchHitDistance' property makes it easier to grab adjustment handles on mobile devices.
  • New 'MouseWheelAction' property lets you choose between Scroll (default) and Zoom as the default behavior in response to a wheel event.
  • New 'MoveNodes' behavior allows you to grab nodes to drag them without using adjustment handles.
  • Now captures mouse events and completes drag/drawing operations even if mouse is released outside the diagram view.
  • New events
    • NodeSelectingScript, LinkSelectingScript, SelectionChangedScript events allow handling of selection interactions.
    • NodeTextEditingScript, LinkTextEditingScript and CellTextEditingScript validation events let you prevent users from editing a specific item.
    • DataLoadedScript is raised when the diagram data is loaded from JSON or XML.
    • MouseWheelScript is raised when the user rotates the mouse wheel while the cursor is positioned over the diagram surface.
    • TreeItemTextEditingScript, TreeItemTextEditedScript allow handling of inplace-edit operations in TreeViewNode.
  • Miscellaneous
    • Client side createDiagramLink method now accepts two, three or four arguments, letting you specify row index for origin or destination TableNode, or TreeViewItem for origin or destination TreeViewNode.
    • Clipboard methods now use modern Navigator.clipboard API when their systemClipboard argument is enabled.
    • Rotation of FreeFormNode instances.
    • ImageAlign supports new FitLeft, FitTop, FitRight and FitBottom alignment styles, which resize image to fit node's boundaries and align it to respective border.
    • Fix for resizeToFitText not calculating correct size when cells have text padding applied.
    • The EnumAllPaths method of PathFinder yields each path immediately when found.
    • strokeDashArray and strokeDashOffset properties let you set custom dash patterns when strokeDashStyle is set to Custom.
    • Styled text now supports <size=N> element letting you set font size.
    • enableStyledText property added to ItemLabel lets you format labels using HTML-like format flags.
    • enableWrap and maxWidth properties of ItemLabel let you wrap label's text.
    • The ArrowHeads class exposes arrowhead shapes as static methods returning respective predefined shape.
    • New PatternRouter constructor accepts string definitions of link routes.
    • New Export overloads of exporter classes allow writing to System.IO.Stream.
    • The MoveLabels behavior lets user move link and node labels interactively.
    • HorizontalOffset and VerticalOffset now work for link labels positioned using SetLinkLengthPosition method.
    • ExcelExporter exports pen width of links.
    • ExcelExporter sets more precise positions of link end points.
    • LinkEventArgs now includes origin and destination properties that report respective candidate nodes to LinkCreating and LinkModifying client-side event handlers.
    • SvgNode.ContentAlign property specifies alignment of SVG drawing inside the node.
    • DiagramLink.lineAlignment property sets the vertical position of link's text.
    • Horizontal scroll gestures should now work on Macbook trackpad when using virtual scroll mode.
  • JavaScript API changes
    • getProperty/setProperty function pairs from client-side API have been replaced by ES6 getters/setters. Set CompatConfig.propFunctions to true in order to continue using legacy get/set functions in your code.
    • Diagram.find method has been removed. Call DiagramView.find instead, and get the view's diagram property.
    • Client-side scroll and zoom properties moved from Diagram to DiagramView: autoScroll, scrollZoneSize, autoScrollAmount, scrollX, scrollY, viewport, virtualScroll, zoomFactor.
    • Client-side input related properties moved from Diagram to DiagramView: allowInplaceEdit, delKeyAction, behavior, tooltipDelay, modificationStart, modifierKeyActions, leftButtonActions, middleButtonActions, rightButtonActions.
    • Client-side magnifier properties moved from Diagram to DiagramView: magnifierEnabled, magnifierFactor, magnifierWidth, magnifierHeight, magnifierFrameThickness, magnifierShading, magnifierShape,magnifierFrameColor, magnifierSecondaryFrameColor.
    • Client-side methods moved from Diagram class to DiagramView class: create, find, record, stopRecording, replay, clearTooltip, beginEdit, copyToClipboard, pasteFromClipboard, cutToClipboard, scrollTo, zoomToRect, zoomToFit, setZoomFactorPivot.
    • MindFusion.AbstractionLayer class has been removed.
    • EventArgs and CancelEventArgs classes have been moved to the MindFusion.Controls namespace.
    • ArrayList, Dictionary, ObservableCollection, Set classes have been removed from MindFusion.Collections namespace.
    • Due to Navigator.clipboard API being asynchronous, pasted items are not available immediately after calling pasteFromClipboard with systemClipboard enabled. You will be able to access them only after nodePasted and linkPasted events are raised.
  • .NET API changes
    • Server-side ContainerNode API is now consistent with client-side one. Containment is no longer implemented via a Group object and SubordinateGroup / MasterGroup properties. Instead, child nodes are now stored in the dedicated Children collection, and a node's container is returned by the Container property.
    • Suspend and Resume methods removed from ILinkRouter. Call Diagram's SuspendLinkRouter and ResumeLinkRouter methods instead.
    • Default LinkRouter changed from QuickRouter to CompositeRouter instance.
    • bool SmartPolylineEnds property of RoutingOptions replaced by PolylineRouting enum property, which also provides an option to prevent inclined link segments for Polyline routes.
    • Removed ClientSideMode, MsAjaxLocation and JQueryLocation properties.