when drawing a completely vertical orthogonal link, as opposed to completely horizontal or one with corners/bends, a point(handle/vertical move) is often placed on top of the upper relink-handle. When dragging this handle, it is possible to create non-orthogonal bends in the link.
My first thought was that perhaps I’ve done something wrong, but I’ve been able to consistently reproduce this behavior with the Demo application. Simply connect the bottomcenter and topcenter of two MultiSpot Nodes, and then drag the topmost handle of the link.
Should I report this as a bug, or does anyone have a solution? First of all, the handle and the relinkhandle should not be placed on top of each other, second, I guess there should be no extra handle when the link is vertical. Third, it shouldn’t be possible to make non orthogonal bends in an orthogonal link.
You’re right–although that only happens when setAvoidsNodes(true). The regular calculateStroke() behavior for Orthogonal links doesn’t place the stroke points that way.
One possibility is to change the definition of JGoLink.gainedSelection: move the 4-line paragraph that creates the two end point handles from the end of the method to before the large paragraph that creates the non-end point handles.
Allright, that seems to work. Except now when the nodes are too close (not touching, the handles are still pixels apart), and you manually relink, the links tend to make little turns and twists. It is not consistent enough to replicate though, and making an additional calculateStroke seems to take care of it …
Expect it has something to do with setAvoidsNodes(true).