|
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.
Node Classes included
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.
- 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) |

MultiPortNode sample class in Demo1, a GoIconicNode
with an arbitrary number of ports at arbitrary positions
|
RecordNode Sample class |

PinNode |
MultiTextNodeWithBack, using a
GoCylinder as the background |

FixedSizeTextNode sample class in Demo1, a GoTextNode
that
does not automatically resize itself as its text label changes
|

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
|