Moving goIconicNodes that have the same UserObject

Hi Walter,

when we move a node, how do we move the nodes that are having the same UserObject characteristic?

Replace the standard dragging tool with one that overrides ComputeEffectiveSelection that adds all the other nodes that have that same property as those that were already selected. Something like:

[code] [Serializable]
public class CustomDraggingTool : GoToolDragging {
public CustomDraggingTool(GoView view) : base(view) {}
public override GoSelection ComputeEffectiveSelection(IGoCollection sel, bool move) {
GoSelection result = base.ComputeEffectiveSelection(sel, move);
if (move) {
foreach (GoObject obj in this.View.Document) {
GoNode n = obj as GoNode;
if (n == null) continue;
foreach (GoObject s in result) {
GoNode sn = s as GoNode;
if (sn == null) continue;
if (sn.UserObject == n.UserObject) {
result.Add(sn);
break;
}
}
}
}
return result;
}
}[/code]
Install by:
[code] goView1.ReplaceMouseTool(typeof(GoToolDragging), new CustomDraggingTool(goView1));[/code]
Caution: I just typed this in, and it's inefficient and probably incomplete -- I have no idea if this works the way you want.

I have the dragEnter event and called the override function, it works, thanks