I’ve not found samples or forum posts about this, so I need advice on what’s the best way to do the following.
I want to allow my users to manipulate links. My links are orthogonal
with rounded lines. The links are resizable and reshapable. What I’m
not sure how to do, is how to add more points (handles) to the line
stroke. This is so they can have more control over the aspect of the
link.
I’ve tried overriding CalculateStroke() to insert additional points in
the line, but it seems to split my link in two separate strokes.
What’s the best method to add points to an orthogonal link?
The Demo1.GraphLink and Processor.FlowLink example classes do this, using context menu commands.
We’ve thought about adding some resize handles in the middle of the middle segments that would automatically do the same thing as the “Insert Point” context menu command does, but we don’t have an example of this.
Now I have another question. How can I prevent my links from collapsing
back to the standard 4 point orthogonal link when users move either end
nodes? I’ve set the AdjustingStyle of my links to ‘Scale’ (as in the
StateCharter sample), but it doesnt seem to work on my orthogonal
links.
For Orthogonal links, only GoLinkAdjustingStyle.Calculate and End make any sense (assuming you wanted to keep the orthogonality of the segments). In your situation I would use GoLinkAdjustingStyle.End. You could override GoLink.AdjustPoints if you want to (optionally) be more sophisticated about keeping or modifying certain points.