Home       Products       Support       Forums       FREE Trial Download       Customers       Project Gallery       About Us       Contact Us       Ordering Info   

 
 
  GO Products
    Evaluation
    Ordering Info
  GoDiagram for .NET
    Concepts
    Features
    Samples
    AutoLayout
    Instruments
    Express
  GoDiagram for
Java (JGo)
    Features
    Samples
    AutoLayout
    Instruments
  GoDiagram for
MFC (GO++
)
    Features
    Samples
    AutoLayout
    ActiveX

    Community
 

  Technical Support

 

  Forums

 

  Consultants

"We found the GoDiagram tools to be extremely powerful, flexible, and easy to use."
Joey Runyans
Senior Software Engineer
Aegis Technologies Group



       
 
GoDiagram Features
 
View Cart
 


Start here... watch the movie

We recorded this video for use at Tech Ed, but now you can watch it right on your PC. Requires 192K or greater download speed.

Watch    Download zip

New Features in GoDiagram 3.0

Version 3.0 has major enhancements to Brush and Pen support in GoShape and GoListGroup that make it easier to much easier to enhance the appearance of your diagrams. Using a gradient for a node's shape is now a single line of code.

GoXmlBindingTransformer makes the reading and writing XML a lot easier.

This version includes 9 new sample applications: AnimatedBasicApp, BeatPaths, DoubleTree, GridApp, SequenceDiagram, SequentialFunctionChart, SharedStates, WPFinGoView (uses a WPF control for each node) and WPFusingGoView (using GoDiagram Win inside a WPF window).

Much more detail about the release is in our forum.

Release notes for 3.0 are available in PDF format: Win Web Express.

New Features in GoDiagram 2.6

The kits for .NET 2.0 now install better on Vista, either as an Administrator user or as a Standard user. Files are now installed under the developer's "My Documents" folder.

Several new sample nodes and tools are now included: SanKey diagrams, Petri nets, SwimLanes and SwimmingPools, Freehand drawing tool, BlockArrow and ArrowLink, StickyNode and StickyDraggingTool, ResizableComment, ClickCreateTool, SimpleTreeLayout.


Swimlanes in a SwimmingPool


Petri Net


Simple SanKey diagram


ArrowLink

For the complete set of enhancements and new features, please refer to the release notes.

Release notes for 2.6 are available in PDF format: Win Web Express.

New Features in GoDiagram 2.5

The kits for .NET 2.0 work on Windows XP x64 as well as on 32 bit versions of Windows. Applications using assemblies compiled for .NET 2.0 run as true 64 bit applications.

Major enhancements include the addition of a new, blisteringly fast GoLayoutTree layout algorithm.  GoLayoutTree is intended primarily for tree structured graphs, but can also be used with any directed graph that is "close" to being tree structured (multiple parents and cycles are allowed).


Sample Tree Layout (alternating style)

GoDiagram WebForms now supports improved AJAX-like features, allowing the developer to balance how much processing takes place locally on the browser vs. the server.  The GoViewDataRenderer supports customization of the client-side data that accompanies each image.  New client-side context menus are implemented via GoContextMenu and MenuItem.  In addition, the new GoWebImageHandler generates diagram images faster than ever before.


Client-Side Context Menu

Control over when link routing occurs is now improved via new RoutingTime, SuspendsRouting, and DelayedRoutings properties.  The new IGoRoutable interface and UpdateRoute method allow customization of the link routing algorithm.


Fishbone Sample Application

Several new sample applications have been added to GoDiagram WinForms (Flowgrammer, Fishbone, UpdateDemo, DataSetDemo, InteractiveForce), as well as several new sample node classes.  The GoDiagram WebForms samples demonstrate more client-side processing and make most views "NoPost".

For the complete set of enhancements and new features, please refer to the release notes.

Release notes for 2.5 are available in PDF format: Win Web Express.

New Features in GoDiagram 2.4

GoDiagram 2.4 provides full support for Visual Studio 2005 and the .NET Framework 2.0, as well as providing several new features.

Enhancements include the ability to more easily define "snap-to" behaviors, better control of Z-order (stacking) of objects within layers, and several new events for tracking user interactions with selected objects.

The new "Planogrammer" sample application illustrates several of these new features by allowing users to drag and drop products onto different displays, such as shelves and racks, with different move and snap-to behaviors appropriate to the different display types:


Planogrammer Sample Application

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

Release notes for 2.4 are available in PDF format: Win Web Express.

New Features in GoDiagram in 2.3

GoDiagram 2.3 has numerous changes that make GoDiagram even easier to use. Among these changes are enter/leave events for objects, enhanced support for Undo/Redo, enhancements to GoGroup, GoSubGraph and GoBalloon.

A major enhancement is the addition of several example node classes displaying textual information in different arrangements, as demonstrated by the InfoNode* example classes in Demo1.

InfoNodes in 2.3

Another new node class is the BarNode in Demo1. It serves as a long horizontal bar with a single port, a BarPort. The following screen shot shows two black BarNodes connected to several NetworkNodes. The NetworkNode example class inherits from GoBasicNode and supports two distinct appearances: white with black text, and blue with bold white text.

BarNodes in 2.3

Version 2.3 also includes additional examples of reading/writing XML, including GraphML and customized SVG (sample).

Release notes for 2.3 are available in PDF format: Win Web Express.

Summary of Significant New Features in GoDiagram Win in 2.2:

  • complete set of Visual Basic Samples to match the C# samples
  • initial support for SVG (Scalable Vector Graphics) (sample)
  • added GoStrokeStyle.RoundedLineWithJumpOvers, to have orthogonal links "jump over" other links that they cross (with the same style); see the new Processor sample
  • better support for partly connected or unconnected links; see the new MovableLinkApp sample
  • added GoLayer.AddCollection and GoGroup.AddCollection, for maintaining links when reparenting within a layer
  • lots of improvements to GoSubGraph for easier extensibility, along with examples of three different subclasses in the new SubGraphApp sample
  • added GoDocument.IsUnoccupied, to help find areas without any nodes
  • improved performance when dealing with tens or hundreds of thousands of objects
  • added GoInstruments, for displaying rulers, meters, gauges et al. This is a part of the Professional package

Win, Web, Pocket... all supported

GoDiagram is the only .NET diagram component that supports all 3 .NET platforms. Since you may not know what the platform requirements will be for your application next year, GoDiagram is the choice that gives you the greatest flexibility and investment protection.

GoDiagram for .NET Windows® Forms (GoDiagram Win) and the smaller/simpler GoDiagram Express (more) both support Windows Forms applications.

GoDiagram for ASP.NET Web Forms (GoDiagram Web) supports ASP.NET WebForms.

GoDiagram Web is a .NET class library containing a set of WebForms controls for easily building interactive diagrams in ASP.NET web applications. GoDiagram Web shares much of the design and implementation with GoDiagram Win, which you use to build Windows Forms applications.

GoDiagram Web controls run on the ASP.NET server. They do not run on the browser’s machine. If you need more interactive behavior than what web pages can provide, you will need to install the .NET run-time on the client machines and develop Windows Forms applications using GoDiagram Win.

Details of differences between GoDiagram Win and GoDiagram Web.

Check out our Online GoDiagram Web based samples.

GoDiagram Pocket and GoLayout Pocket support diagram and network graphics on the .NET Compact Framework. The Microsoft .NET Compact Framework is supported on Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003-based Pocket PCs, and embedded systems running Windows CE .NET 4.1 and later.

 

 

 

 

 

  
Feature Description / Benefit
Model-View-Controller design pattern Documents, Views and Nodes & Links provide an easy to use and powerful programming interface. Extends the concepts within Microsoft's .NET.
Documents Documents provide runtime storage for displayable objects. A document contains the list of layers of graphical objects to be displayed in one or more views.
Layers A document has a Collection of layers. Each Layer is a collection of GoObjects, which are the objects users can see and manipulate in a view. You can change the order or visibility of layers, as well as allowable user interactions (selection, moving and deletion).
Views

Views provide a window on graphical objects stored in a document. A view defines how the user sees the objects and interacts with them. Each view handles its document’s Changed event so that it can keep its window up-to-date with all of the objects in the document.

GoView derives from .NET's System.Windows.Forms.Control. As a regular control, GoView can be placed in a form designer’s toolbox and drag-and-dropped onto a form to be instantiated. It raises several kinds of events involving clicking or selecting objects.

Views support scrolling, autoscrolling and zooming (and panning in a GoOverview window).


GoView with grid

GoView provides end-user editor support for selection, drag-and-drop, copy-and paste (clipboard), in-place text editing, grid display, tooltips and printing. Two subclasses of GoView provide more specialized behavior: GoOverview and GoPalette

Overview View

GoOverview presents a reduced-scale view of the primary view. GoOverview also allows the user to pan or navigate the primary view by dragging a rectangle within the overview.

Palette

GoPalette holds a read-only collection of GoObjects, laid out in a grid, for the user to select and drag into a GoView.

Controller Tools Each GoView has a collection of GoTools which serve as the controller part of the model-view-controller architecture. Tools are used for handling input and input state, such as keyboard keys and operations such as drag and drop. Tools can be modal or modeless.
Selection The GoSelection class is used by a GoView to maintain a separate list of the objects selected. Each view has its own selection. In addition, the selection class notifies objects of gaining and losing selection events, and (with GoObject) is responsible for the appearance of a selected object.
Graphical Objects

GoObject defines the basics of a graphical object: a bounding rectangle (the Bounds property) and some common attribute properties: Visible, Selectable, Movable, Copyable, Resizable, Reshapable, Deletable, Editable, AutoRescales, ResizesRealtime, and Shadowed. GoObject uses the full power of the .NET System.Drawing namespace for drawing.

There are three kinds of primitive GoObjects:

  1. Shapes, such as rectangles, ellipses, diamonds, and strokes. Each GoShape instance can have a Pen for drawing the outline of the shape and a Brush for painting the inside of the shape.
  2. Text, in various fonts, sizes and colors
  3. Images, for various kinds of images such as bitmaps, JPEGs and GIFs. GoImage objects can get their image information from files, resource managers, or image lists.

Support for moving, copying, deleting, resizing, and reshaping objects is built in to GoDiagram. Go also supports high-level events, such as SelectionDeleting, SelectionDeleted, ObjectContextClicked, ObjectHover, and ObjectEdited.


shapes with shadows

text with shadow

GoHexagon, GoOctagon,
GoCube, GoCylinder, GoTrapezoid

Graphs 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 (Nodes)

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.

Links

Links connect 2 Ports, and are used for building diagrams with GoDiagram. There are default path algorithms with GoDiagram, or you can override the method to choose the path in your application. The AutoLayout add-on to GoDiagram will do more sophisticated routing.

Links can also have labels and arrowheads.

 

 

Diagrams above show Line, Bezier and Orthogonal properties.
The behavior of the selection handles can also be modified with built in properties.

 

automatic routing of orthogonal links: GoLink.AvoidsNodes property

Ports

Ports define the endpoints of links in nodes. They can have any drawable appearance, or they can be zero sized points. If the position of one or both of its GoPorts changes, the GoLink redraws itself to connect the new positions.

Users can draw new links and relink existing links, with links "snapping" only to valid ports. Your application can customize the validity checking performed during a linking operation.

Subgraphs Subgraphs are user-collapsible nodes that contain graphs, supporting links within and across the subgraph boundaries.
Interactive Editing

There are many in-place editing features built into the GoDiagram objects.

 

Undo/Redo Manager Allows users to reverse the consequences of unintended changes. GoDiagram provides a framework for Undo and Redo, and all predefined documents and objects support it. It's very easy to add support for infinite undo/redo to your application.
Documentation

GoDiagram provides extensive documentation. The User Guides offer a comprehensive overview of all the major features and how they interact. An FAQ (Frequently Asked Questions) list is included in the User Guide, with answers that usually include code or point to code in the samples. The online help manual provides a complete API reference for all of the types in GoDiagram and GoDiagram AutoLayout.

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.


GoBasicNode

GoBasicNode

GoComment

GoButton

GoSimpleNode

GoGeneralNode

GoBalloon

GoBoxNode


GoTextNode


GoSubGraph


GoIconicNode

GoMultiTextNode

GoBoxNode using LinkPointsSpread property, to evenly distribute link points on each side of GoBoxPort

GoBasicNode shapes

GoSimpleNode oriented vertically

  • 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 type’s name, properties and methods (in the Classier sample)

PersonNode, a GoTextNode that displays a person’s 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

    
Copyright © 1995-2008 Northwoods Software®. All rights reserved.