GoDiagram Node Classes
GoDiagram makes it easy to build applications where users can see and manipulate graphs of nodes connected by links. GoDiagram provides this functionality with the GoNode, GoPort and GoLink classes. Nodes are groups containing one or more ports. Links connect two ports.
Groups provide a way of making a single object out of other objects. Nodes are typically implemented as a group of simpler but distinct objects (such as text and an icon, along with ports for connecting links).
GoDiagram provides many built-in Node classes as well as several samples Node classes.
In addition to full working sample applications, GoDiagram also includes several Node classes. GoDiagram provides implementations of of the most commonly needed kinds of nodes. While you can always write your own custom node class with GoDiagram, many applications can use these existing Nodes as-is or with slight enhancements.
Pictures of these objects are shown below with the descriptions.
The source code to these node classes is included only when you purchase the source kit.
![]() GoBasicNode |
![]() GoBasicNode |
![]() GoComment |
GoButton |
![]() GoSimpleNode |
![]() GoGeneralNode |
![]() GoBalloon |
![]() GoBoxNode |
|
![]() GoSubGraph |
|
|
|
GoMultiTextNode |
GoBoxNode using LinkPointsSpread property, to evenly distribute link points on each side of GoBoxPort |
|
GoBasicNode shapes |
GoSimpleNode oriented vertically |
Node classes that are built in to GoDiagram
- GoComment, a group with no ports that displays some text
- GoBalloon, a balloon comment displaying text and pointing to an object
- GoBasicNode, an elliptical node with one port in the middle and an optional label
- GoIconicNode, the simplest node with an image and a text label and a single port
- GoTextNode, a node with four ports, one at each side, that displays some text with a background shape
- GoBoxNode, a node containing an object, with a single port that is smart about connecting links to the closest side
- GoSimpleNode, a node with two ports, an icon, and a label
- GoGeneralNode, a node with any number of labeled ports on either side, an icon, and labels on the top and/or bottom
- GoSubGraph, a labeled node that contains a graph of individually selectable and movable nodes and links, that the user can collapse or expand in place
- GoButton, a group that looks and acts like a button, but is lighter-weight than a real Button Control
Additional Sample Node Classes
Additional example classes derived from the predefined ones, including: LimitedNode, AutoLinkNode, SequencedNode, GraphNode, and GraphLink. The source for these additional nodes is included in the sample applications.
![]() SequencedNode demonstrates how to extend a GoGeneralNode by adding a port at the top and a port at the bottom. (the Demo1 sample) |
![]() ClassNode, a GoTextNode that displays a types name, properties and methods (in the Classier sample) |
![]() PersonNode, a GoTextNode that displays a persons name (in the FamilyTree sample) |
![]() LimitedNode, a GoGeneralNode whose location is limited to a certain range in the X dimension, that has context menu commands for adding and removing ports, whose ports are limited to at most three links, and whose ports change color according to how many links are connected (in the Demo1 sample) |
![]() GraphNode, a GoSimpleNode that has customized ports, context menu commands, and a unique label when added to a document (in the ProtoApp sample) |
![]() AutoLinkNode, a GoGeneralNode with a special auto-linking port that automatically creates new ports as the user tries to link to it (in the Demo1 sample) |
![]() GraphLink, a labeled link with an arrowhead, whose middle label is initially a random number, and that has a context menu (in the Demo1 sample) |
|
![]() RecordNode Sample class |
![]() PinNode |
![]() MultiTextNodeWithBack, using a GoCylinder as the background |
|
RichText class (only in WinForms) |
![]() ColoredNode Sample class |
TreeApp Sample with expandable nodes |
|
A variety of new sample node classes exhibiting frequently requested behaviors. The ClassDiagramNode implements a UML style class node with collapsing sub-sections:

ClassDiagramNode
The CollapsingRecordNode supports collapsing sections like the ClassDiagramNode above, but also provides ports on both sides of each item:

CollapsingRecordNode
The ScrollingMultiTextNode inherits from GoMultiTextNode and adds the ability to scroll the text items within the node:

ScrollingMultiTextNode



























