DroidDiagram version 1.3 contains the following new features and improvements:
Free-form nodesA FreeFormNode collects all points from users' touch input and displays them as node's outline. To let users draw free-form nodes interactively, set DiagramView.Behavior to DrawFreeForms or LinkFreeForms. Use the Points property of FreeFormNode to get or set outline points programmatically. If the Closed property is set, the node is drawn as a closed shape and its interior filled, or otherwise the node is drawn as a poly-line. If the distance between first and last points drawn by user is shorter than Diagram.AutoCloseDistance, the node's Closed property is automatically set to true. AutoCloseDistance default value is Float.MAX_VALUE, so free-form nodes are always closed.
Convert free-form drawings to ShapeNodesAdditional Behavior modes, convenient for touch drawing, convert FreeFormNode objects drawn by user to ShapeNode objects with matching shapes. To enable them, set Behavior to DrawFreeShapes or LinkFreeShapes. The shapes against which the user's input is matched are set via diagram's FreeFormTargets property. By default it contains Rectangle, Decision and Ellipse shapes.
Miscellaneous~ Dashed selection frames are now drawn in two colors and should be visible on both the default white background and custom darker backgrounds. You can change the second dash color via DashBackground property of HandlesVisualStyle.
~ TreeViewNode now contains a scrollbar that lets users scroll its content interactively.
~ HandlesStyle is now serialized by the base DiagramNode class. This automatically saves the value for custom node types and fixes lost non-default values for CompositeNode and TreeViewNode after serialization.
API changesAdjustment handles are no longer identified by integer values but by instances of AdjustmentHandle and derived classes. This changes the signatures of DiagramItem.hitTestHandle methods and the InteractionState constructor. Standard handle classes included are NodeAdjustmentHandle for changing a node's position and size, LinkAdjustmentHandle for changing link control point positions, and FreeFormHandle for changing the position of a FreeFormNode outline point.
If anyone is interested in trying the beta version, please download this archive containing updated JAR file:
https://mindfusion.eu/_beta/DroidDiag13.zipAny comments, questions and general feedback are welcome.