Link routing not updating after layout

Hey guys-
I have a problem that I need a couple of hints on. I have a version 2.5.2 document with objects derived from the ClassDiagramNode (from Demo12), GoLabeledLink, GoSubGraph, and GoBasicNode. I am linking these objects together and using GoLayoutLayeredDigraph to perform a layout.
After (and only after) performing a layout:
1) Moving ClassDiagramNode and GoSubGraph derived objects will cause the links connecting to them to update positions.
2) Moving GoBasicNode derived objects will not update any connected link positions. A second move will cause an update. A third move will not cause an update, but a fourth will, and so on.
I know there is something that isn't getting called, but where should I look? I've heavily modified the GoView class and have probably broken something....
Thanks in advance -- Tyler

Only after a layout? That’s odd.

What happens if some code moves a node? Add a button that calls GoView.MoveSelection(null, …). Do selected GoBasicNodes get moved with each click of the button?

What methods have you overridden on GoBasicNode or any of its parts?

To answer the lastquestion, I haven’t overriden any methods on GoBasicNode, I just add functionality via interfaces the derived class implements. I’m wondering now if this is the culprit, because in the event_DocumentChanged method I am using type information to control program flow… but it does indeed happen only after I perform a layout.

Let me try the GoView.MoveSelection thing and get back to you.

I added a context-menu command to move the currently selected object:

net.MoveSelection(null, new SizeF(100.0F, 100.0F), false);
And I got the same behavior: the GoBasicNode derived objects move but leave their links behind, but only after a layout.

I should also add that a second command will cause the object to move farther away, but the link reconnects. So, after an odd number of moves the links are disconnected, and after an even number, it is connected. This only happens with GoBasicNode derived objects, and they are implementing different interfaces. I’m guessing it has something to do with that and some convoluted logic :)

Any ideas? -T

Can you email your GoBasicNode derived class to “godiagram” at this domain? we’ll eyeball it for you.

One thing to try might be to do a "MinimalApp" style app with your new node class and layout and see if it happens there. That isolates it to the node or other code in your app.