Draw2D touch version 3.0.4 released

Release the final version after test and fixing some minor bugs in the „test“ versions.
integrate the toFront example in the documentation

Draw2D touch version 3.0.3 (test) released

+ change the prio. from the width/height reading order from JSON,SVG to SVG,JSON. You can now add the width/height to the imported JSON document for SVGFigures as well.
+ don't recalculate the stroke width if the user resize/transform/rotation a SVG or SetFigure. Obscure stroke-width calculation in raphaelJS in context with the usage of Draw2D. Fixed in the raphaelJS lib itself.

Draw2D touch version 3.0.2 (test) released

+ fixing UTF-8 encoding problems in some js source file.

Draw2D touch version 3.0.1 (test) released

+ first draft method for "Figure.toFront"

Draw2D touch version 3.0.0 (test) released

Please notice: this Version is API incompatible to 2.10!! draw2d.io.Write changed upgrade to jQuery 1.10.x

+ upgrade jQuery from 1.9.x to 1.10.
+ remove example related js lib from the common directory to the examples folder.
+ changing the draw2d.io.Writer interface to use async callback method to provide marshal result. This API change is incompatible to all 2.x and 1.x version. existing apps must migrate the Writer.marshal method.
+ bugfix for canvas to PNG export if an image part of the canvas.
+ upgrade to new jsDuck version 5.3.3.

Draw2D touch version 2.10.1 released

+ finalize the draw2d.layout.connection.JunctionRouter
+ add SnapToJunctionPoint for the router edit policy.
+ remove junction point if the angle in the junction point less than 178 degree.
+ new example code for junction point router

Draw2D touch version 2.10.0 released

+ draw2d.layout.connection.JunctionRouter for manual modification of connections.
+ add asynchron callback for connection creation
+ move "setAlpha" during the drag&drop operation into a edit policy instead in the Figure.js base class.
+ fixing bug for connection decoration. width/height as constructor param are ignored.
+ fixing bug for font fallback calculation in Label.setFontFamily
+ inherit the CSS class name of a Connection the the source and target decoration
+ fixing bug if the user release the mouse button outside the window during a drag&drop operation, The port location is broken at this moment.
+ move the serialization of the connection junction points into the router. In this case the router can decide which is important for deserialization.

Draw2D touch version 2.9.0 released

+ new method to set the CSS style class for shapes. good for FF Chrome Safari and IE>=10 styling of SVG elements setCssClass, hasCssClass, getCssClass, addCssClass, removeCssClass, toggleCssClass
+ implement the method CommandCollection.canExecute. Just to avoid events if nothing has been changed.
+ Connection decoration inherits the color and opacity of the connection. Now the arrows or any other decoration has the same color as the connection itself
+ ports not layouted if they are added after the parent figure has been added to the canvas.

Draw2D touch version 2.8.0 released

+ serialize "path" attribute if draw2d.shape.basic.Image
+ adding getter/setter for Image path attribute

Draw2D touch version 2.7.4 released

+ fixing bug for JSON read/write of draw2d.layout.connection.FanConnectionRouter within a Connection
+ add missing this._super() call in all ConnectionRouter inherit classes.
+ call of non existing method "onDeinstall" instead of "onUninstall" in Connection implementation during canvas reset

Draw2D touch version 2.7.3 released

+ missing package declaration "state" in "PROD" build

Draw2D touch version 2.7.2 released

+ fixing reconnect error if the port did use a ConnectionAnchor. The CommandReconnect didn't restore the correct start/end position.
+ new calback method onInstall/onDeinstall for ConnectionRouter for resource cleanup.
+ remove hangover of the CircuitConnectionRouter if the canvas has been reset or the router of the connection has been changed
+ Enhance the ShortestPathConnectionAnchor to support draw2d.shape.basic.Circle instead of a simple BoundingBox calculation.
+ First demo App with (isn't final yet but worth a look)
+ first GUIDE for documentation. how to implement my first custom shape based on SetFigure or SVGFigure
+ fixing ConnectionDecoration position calculation if the connection use a ConnectionAnchor
+ fixing BottomLocator to handle Ports in the correct way. Anchor point of a port is in the center and not TopLeft
+ fixing TopLocator to handle Ports in the correct way. Anchor point of a port is in the center and not TopLeft
+ new locator for connection annotations. PolylineMidpointLocator. (look at state_diagramm demo app)
+ New figures draw2d.shape.state.End, draw2d.shape.state.Start, draw2d.shape.state.State, draw2d.shape.state.Connection to implement a state diagram.
+ fixing error in LineResizeHandle in combination with ConnectionAnchor. 'isMoving' isn't reset.

Draw2D touch version 2.7.1 released

+ fixing SVGFigure for IE8. IE8 expose the namespace of the SVG nodes to the tagName. In this case my code breaks.
+ ArrayList contains bug in the clone method which is visible in IE8 enviroment.
+ add css style body{margin:0} to all examples to ensure that these examples work well in IE8. The box model of IE8 and other browser differ in some points and the offset calculation didn't work.

Draw2D touch version 2.7.0 released

+ enable Label and Note for font settings via API and JSON serialization
+ new kind of router with junction nodes on connections with shared ports CircuitRouter

Draw2D touch version 2.6.1 released

+ bugfix corrupt opacity setting in FadeOutPolicy and broken PNG export

Draw2D touch version 2.6.0 released

+ extended callback listener for LabelEditor and LabelInplaceEditor. See the documentation for an example
+ new method Port.onConnect / Port.onDisconnect which can be overwritten to handle connection activities.
+ fix a bug in the SlimSelectionFeedbackPolicy
+ performance shortcut for draw2d.policy.port.IntrusivePortsFeedbackPolicy and avoid Connection reroute if we
Drag&Drop a related port. Broken painting.
+ first draft of a horizontal and vertical Layoutmanager which can hold different kind of children shapes
+ enable method chaining for ConnectionDecorator.setColor, setBackgroundColor and setDimension.
+ fixing error in ConnectionDecorator. "Color" isn't used at all.
+ add CSS like color string as valid parameter type for ConnectionDecorator.setColor and ConnectionDecorator.setBackgroundColor
+ enable all setter methods for Colors to accept CSS #rrggbb strings as well.
+ fixing selection handling bug in BoundingBoxSelectionPolicy if a draw2d.shape.basic.Line is part of the canvas

Draw2D touch version 2.5.0 released

+ fixing SVG text import on Chrome, FF19 and IE9
+ support font-family in SVG text import
+ new method to force a routing direction for a Hub/fulcrum shape.
+ remove fixed coded background color of the ports with the correct color which has
been set via Figure.setBackgroundColor(..)
+ change the cursor for the resize handles related to the resize behaviour.
+ Automatic add add a Connection to the current selection if source and target are part
of the new selection. (only in the selection handling of the BoundingboxSelectionPolicy)
+ apply the font-size to all text element inherit from SVGFigure
- parse the "tspan" node and children of "text" node within the SVG import of SVGFigure
+ new Canvas decoration/policy. draw2d.policy.canvas.ShowGridEditPolicy
Just to paint a nice looking grid on the background of the canvas
+ new method Label.setBold(flag) to set the font-weight of a label.
+ new Router MazeRouter and SketchRouter
+ respect the z-oder of the shapes during the hit test. Return always the top most element
if shapes are stack at the hit test position.

Draw2D touch version 2.4.0 released

+ Figure.onMouseEnter / Figure.onMouseLeave event. It is now possible to implement
hover events.
+ fixing some rendering problems with rotated shapes
+ new example how to implement a tooltip figure without any third party lib.

Draw2D touch version 2.3.4 released

+ remove hard coded maxFanOut=1 from the port.
+ hide the selection feedback and ports on the first load of the canvas.
+ more stable SVG import parser. Switch from "Regular Expression" parsing to native DOM.
This is a major change - please inspect your application of compatibility!
+ wrong label chaining in some Commands.
+ change the order of the event receiver detection. First of all all children of a shape are check, after
the the figure itself can receive the event. This is major changes. please check your application of compatibility.
+ Fix IE9 PNG export issue.
+ new demo for LabelEditor of a child shape of a normal rectangle. ( examples/interaction_labeledit_inplace )
+ new node Type draw2d.shape.node.Fulcrum for a hidden single port base point
+ delete the connection direction calculation from the connection to the port
+ fixing direction calculation and implement smarter routing behavior for ManhattanRouter
+ fixing broken Rectangel.determineOctant calculation with forces sometimes a bad routing behavior.
+ paint connections/lines in a way to avoid subpixel calculation if the line stroke y2 pixel
(cleaner render of the connection with out any blur/transparent effect)
+ avoid VML/text selection during drag&drop of an VML element on IE8
+ reduce routing calculation. noticeable performance improvement on IE8.
+ fixing bug during drag&drop of a connected port. Avoid connection following or already
connected lines.
+ fixing broken backgroundColor on IE8 for the draw2d.shape.analog.OpAmp element
+ change layout event for ports. Add this to the repaint method instead of a seperate logic.
Avoid sometimes port layout errors after loading JSON model into the canvas.
+ fixing broken connection decoration. Decorations are misplaced (always at [0,0] )

Draw2d gets "Snap-to-Grid" function with release 2.3.0

Snapping components to the grid is one of the most requested features for Draw2D and we are happy to release it in today’s update: pixel perfect ‘Snap-To-Grid’ function.  It is available as CanvasPolicy and can be installed with

new draw2d.policy.canvas.SnapToGridEditPolicy(20));

Components snap on move and also on resize enabling precise layout of diagrams with ease.

Draw2D touch version 2.2.0 released

One common ways to visualize state transition sequences is by using graphs. With this release we provide smooth Graphs for Visual Exploration of Higher-Order State Transitions.