How to extend GogeneralNodeClass

for our application I need a node which has unlimited number of ports on the left and the right and one port on top and also one on the bottom.
The GoGeneralNode perfectly fits the right and left port requirements and using the provided examples I was able to create my own.
I also added a function in my class - the class inherits from the GoGeneralNode to add a top and Bottom port
here is the function:
//This function creates either a top or a bottom port.
//The Port is located at the middle of the node
public GoGeneralNodePort AddVerticalport(bool Top) {
GoGeneralNodePort x = new GoGeneralNodePort();
if (Top)
x.Bottom = this.Top;
x.Style = GoPortStyle.TriangleMiddleBottom;
} else { x.Top = this.Bottom;
x.Style = GoPortStyle.TriangleMiddleTop;
} x.Movable = true;
x.Left = this.Left + 50F;
x.DragsNode = true; x.Deletable = true; this.Add(x); return x; }
Then I call this function twice in my Initialize method(once for the top and once for the bottom port) so the node ends up as I need it to be.
The problem is that when I try to move it with the mouse, if I click on the node's MidLabel everything is OK but if I click on the icon, in my case a LinearGradientRoundedRectangle ( I borrowed it from your library) and move it away , everything except my newly created ports moves with the icon. So in short while the Midlabel and my new ports appear to be "Married" the icon and my ports are not.
What am I missing? I need everything to move together.
Thanks very much

Try using SequencedNode, another example class in Demo1.

You may want to customize the appearance and/or behavior of those two ports to suit your application's needs.


I looked at it and a combination of that + The LinearGradientRoundedRectangle icon is exactly what we need.