How to access PartInfos of objects in container?

Hello all,

I'm attempting to create a diagram node that has several clickable areas. Each area will, for example, contain an image and a bit of text that describes a state or property of the object represented by the node. I'd like for the user to be able to click on each area of the node in order to toggle the status or property represented by the area or to click an area in order to launch a page that can be used to update the status or property represented by the area. When the user clicks an area on the node, I'd like to respond to that click via client side javascript and to have information about the property represented by the area available to the javascript.
I understand all of this is possible via GoPartInfo and indeed I have gotten this to work. However, I can only get it to work by overriding GetPartInfo, etc. on the node object itself. Overriding GetPartInfo on objects that are _contained within_ my node seem to have no effect.
For example, say my node contains a MyImage object that I derive directly from GoImage. MyImage only overrides GetPartInfo and GetCursorName in hopes that on mouse over I'll get the "pointer" and on click I'll activate my OnSingleClick javascript handler. When I load my document that contains my node, I get no response when I mouse over or click on MyImage. However, if I override GetPartInfo and GetCursorName on the node itself, everything works in the context of the node.
Ideally, I'd like each object contained by my node to be able to override GetPartInfo so that I can expose custom javascript for each clickable area of my node.
It seems like this should be possible and I'm just missing something simple. Any help or suggestions would be appreciated.
Confused,
John

Hello all,

After reading and re-reading and trialing and erroring for the last few days I have found the solution to this problem.
By overriding GoViewDataRenderer.AddPartInfo() you can iterate through the interesting objects of your nodes and call GoObject.GetPartInfo for each interesting object contained within your node. Alternatively, you can create a GoPartInfo within the body of the AddPartInfo function.
Once you have your custom GoPartInfo, call GoViewDataRenderer.AssociatePartInfo() passing in your interesting object and the custom GoPartInfo you created for it.
Finally, call GoViewDataRenderer.AddSearchArrayEntry() passing in the bounds of your interesting object and an associated text string.
In my AddPartInfo override, I create GoParts for the interesting objects contained within my node, and then call AssociatePartInfo and AddSearchArrayEntry for each. Finally I call base.AddPartInfo passing in the node object itself. This solution seems to give me the everything I'm looking for: the ability to call client side javascript when either specific regions or an uninteresting piece of the node itself is clicked.
Hope this is helpful to some of you.
John