I decided to stretch the release periods from formerly 7 days to 10 to 14 days. I’ll use the longer time frame either to tackle harder problems (such as connection editing and nesting) or to include more features.
This release cycle, there are only two features, which I consider important, but a little more difficult: Multiple selections and editable connections.
As expected, multiple selections was indeed very simply implemented using the Composite pattern, with that out of the way, the editor feels much more natural and some code cleanups could be applied on the way.
I am now seeing that editing connections is a comparatively difficult feature, so I assigned five days to get that right for both simple and rectilinear connections. I’ll use more if I need to, because I want it to be both sufficiently clean and usable. To illustrate the idea, I have created a package diagram with a few dependencies where I have edited the connections, with editing, I mean to create new control points, so that connections can be drawn a bit more flexibly.
As shown, it works already for connections which are not rectangular. This is the easier case, rectangular connections have a few rules to take care of.
I originally planned to include package nesting in this release, which is another nice feature with a good learning effect. It does not fit for the current release time frame but I consider it very important, so I moved that to the 0.12 release.