Automatically move connected nodes

Hey all,

I have created a grid made up of GoBasicNodes which are all linked together. When I move one node I want all the other modes to move as well. Is there a way to do this or do I manually have to code this up?

If there is a way to do this using the Go API is there any options I can set to specify the amount the other nodes move e.g. when I move a node, all nodes directly surrounding it will move 70% of the distance that I moved the node. Nodes which are further away will a shorter distance etc.

What should happen when the user selects and drags multiple nodes?
The functionality you describe reminds me of the behavior of the InteractiveForce sample application. Try it to see what I mean.
To just do the first part you can do what the TreeApp sample application does – customize the dragging tool by overriding the GoToolDragging.ComputeEffectiveSelection method.
However, that would cause all of the other nodes to move the same amount as the selected node(s). That’s because GoToolDragging.DoDragging, after calling ComputeEffectiveSelection and after computing the desired offset, calls GoView.MoveSelection to move everything by a fixed offset.
So if you want to move different nodes by different amounts, you’ll need to override GoToolDragging.DoDragging to do what you want. I’ll caution you that it can be complicated to support copying or realtime drags (GoView.DragsRealtime) or cancellation.