I need nodes where I can include different content like images, text, Buttons etc. (probably realized in a GoGroup). This nodes should have different shapes (rectangle, ellipse, diamond…). I tried to realize that with GoBoxNode. The problem ist, that the port is always a rectangle, so that the links have some distance to the body of the node.
So I tried to do that with GoBasicNode, which work fine for the appearance of the nodes and links. But there I had the problem to add the GoGroup with my content to the nodes.
Can you give me a hint how I could realize that with one of the nodes? Or should I better use another basic node?
Just create the objects you want (within a GoGroup if you want, but not necessary) and Add them to the GoBasicNode.
If you need to rearrange or resize any of those objects when any of the node’s children are resized (for example because you modify the shape or change the Text string) then it’s best to override LayoutChildren to call the base method and then make sure all of your additional children are laid out the way you want.
TreeAppNode does this, to add a GoCollapsibleHandle.
DecoratedTextNode is a slightly more elaborate example (although it inherits from GoTextNode instead of GoBasicNode). The additional child is an instance of TextNodeDecoration, which is just a simple GoGroup.
MultiPortNode is another example that adds are a varying number of extra children that are ports at various positions. It actually inherits from GoIconicNode.
That was exactly what I was trying to do. But I made the mistake to set the size of the node instead the size of the shape and destroyed my layout. Now it works.
Thanks a lot.