The MindFusion Forums | |
Flow Diagramming Components >> Html Canvas & JavaScript >> Version 3 beta
https://mindfusion.eu/Forum/YaBB.pl?num=1491820046 Message started by Slavcho on Apr 10th, 2017 at 10:27am |
Title: Version 3 beta Post by Slavcho on Apr 10th, 2017 at 10:27am
Version 3 of the JavaScript Diagram library contains the following new features and improvements:
User-interaction controllers All kinds of user interaction are now carried out by controller objects. The startDraw method of BehaviorBase-derived classes that returned an opaque InteractionState instance has been replaced by createController method returning a controller of class specific to the modified item and interaction types. Built-in controllers include CreateNodeController, CreateLinkController, ModifyNodeController, ModifyLinkController, LaneGridController. You can also create custom controllers by deriving and overriding the methods of SinglePointerController - Code (] SinglePointerController.prototype = { start: function (position) {}, move: function (position) {}, validate: function (position) {}, commit: function (position) {}, cancel: function (position) {}, drawInteraction: function (context) {} }[/code):
where position in MindFusion.Drawing.Point instance specifying logical coordinates in the diagram (in current measure unit, not scaled by zoom factor). The results of called mouse methods will depend on diagram's current Behavior, e.g. you could assert that a sequence of down/move/up events creates a ShapeNode when Behavior is set to DrawShapes. ~ create an instance of controller class and call its start, move and commit methods. This would not depend on the value of Diagram.Behavior, but could be still affected by other behavioral properties such as AllowSelfLoops and AllowUnconnectedLinks. ~ Check assertions after replaying a recording on a saved diagram. Ruler control The Ruler control provides horizontal and vertical scales that help users measure and align diagram items. In order to set up a Ruler instance, create a DIV element parenting the diagram's scroller div - Code (html):
Code (javascript):
3rd party dependencies now optional The diagram can now be used without JQuery and Microsoft Ajax libraries. To enable that mode, set MindFusionImpl = "StandAloneImpl" before loading diagramming.js. Stand-alone mode requires relatively modern browsers, the base feature-set against we test it is the one of IE11. Flip shapes The shape of a ShapeNode can be flipped horizontally or vertically. Enable the AllowFlip property and the shape flips when an edge is dragged over its opposite edge. You can get or set current flip state using FlipX and FlipY properties. Revamped item dependency system Dependencies between diagram items are now expressed by rule objects and applied in sequence by the DiagramMediator class. Built-in dependencies are implemented by ItemFollowsContainerRule, AttachedFollowsMasterRule, LinkFollowsNodesRule, NodeFollowsSelectionRule rules. You can create custom rule objects with following API and add them to DiagramMediator.AllRules array to make items follow other items during user interaction - [code] var MyRule = { dependencies: function (master) {}, // return array of items that should follow master dependentUpon: function (dependency) {}, // return array of items that should be followed by dependency recognize: function (dependency) {}, // return true or false if this rule shoudl be applied on an item updateFromMasters: function (dependency, originalStates) // set new position or size of dependency }[/code] License keys There is no separate trial build of the control's scripts anymore. Instead it verifies a license key string specified either by calling Diagram.setLicenseKey(key_string) method or by adding a diagram_lic.txt file to the application's directory on web server. Miscellaneous ~ CaptionBackBrush and FoldIconSize properties added to ContainerNode. ~ Multiple rotation of nodes improved, now node angles are modified by same rotation delta calculated from mouse position instead of pointing all rotation handles in mouse direction. ~ Xml serialization improved. ~ Diagram.LinkSegments property specifies initial number of link segments. ~ JQuery mode now supports version 3 of JQuery. If anyone is interested in trying the beta version, please download this archive containing updated script files and sample projects: https://mindfusion.eu/_beta/jsdiagram3.zip Any comments, questions and general feedback are welcome. |
Title: Re: Version 3 beta Post by Slavcho on Apr 11th, 2017 at 8:58am
Updated Controls example here now demonstrates the Ruler control -
https://mindfusion.eu/_beta/jsdiagram3.zip |
Title: Re: Version 3 beta Post by Slavcho on May 8th, 2017 at 4:11pm
Version 3 has been released -
https://mindfusion.eu/JsDiagramTrial.zip |
The MindFusion Forums » Powered by YaBB 2.6.11! YaBB Forum Software © 2000-2024. All Rights Reserved. |