Here are my enhancement requests.
a) Grid layout that can be provide guidance and can zoom in and out. Just like grid layout found in other developers designer. Take a look at grapholite.com or gliffy.com
b) All shapes/block ( here after we will call just "shape") to have automatic arrow key in all direction when hovered over as a hint to user that they can be dragged to create copy of the same shape with "connector" attaching them. Also they can be dragged to connect to another shape. When this happens, can fire another custom event associated with that shape since shape can have additional custom events and properties.
Logical Properties Changes
a) Each board will have JSON data-source. This JSON will serve as schema to all shapes/block in the board designer surface.
b) In the property window, user is required to supply data-bind property to associate one of the fields coming out from schema above.
c) In the definition of shapes, there will be certain number of connectors required. If connectors requirement are not met yet, the shape will be "red" in color to give a hint to user that connectors requirement are not met yet.
d) if data-bind requirement is not met yet, the background color of the shape will be turned to yellow.
e) If a value (user supplied value in property) requirement is not met, the label will have question mark (?) appended at the end so that user know that certain requirement is missing.
Just to give you a background where I am going with this - My end goal is to create a powerful visual programming tool that can create some "business rules".
Let's say there are 6 shapes.
StringShape can basically be data-bound to a field in schema and it will have to have one "connector" going out somewhere (to another shape).
GreaterThanShape will basically take exactly 2 connectors and can be associated only with DigitShapes to do greater than comparison.
When this diagram is saved, each sequential functions are extracted and saved either together or separately as a "business rule". These business rules can then be invoked by simply calling them from a GUI (outside of matisse app).
These are just few examples what I want to accompolish. So if you can see, Matisse tool is serving as powerful tool to create powerful business rules, all done by end user.