Welcome to the JGo (tm) Evaluation kit

JGo, JGoLayout, and JGoInstruments for Swing, version 5.21
Northwoods Software Corporation

JGo requires the Java 2 platform (1.2 or later) and depends on Swing and Java2D.

The evaluation kit version of JGo is fully functional, but has some reminders
that it is only an evaluation version.  The source code for the libraries are
not included, but the sources for the examples are in this kit.

You can purchase a license for the full JGo source kit or for the JGoLayout
and JGoInstruments binary libraries at our web site:
  http://www.nwoods.com/go


Platforms

  JGo has been tested with the following environments, all on Windows:
    Sun Java 2 SDK-SE 1.4.2, 1.5.0, 1.6.0
  but should run with older versions (1.2+) and on other platforms (Linux, Mac OS X).
    
  The example applications were compiled with and expect the JRE 1.4+
  functionality.  If you need to use an older version of the JRE, you will
  need to comment out and recompile the code that depends on the mouse wheel
  or on XML libraries.

  If you are using Sun's J2SDK/JRE 1.4.0 on Windows, please upgrade
  to 1.4.1 or later.  If you must use 1.4.0, Sun recommends using
  the -XX:-UseThreadPriorities command-line option to reduce the
  frequency of short freezes during drag-and-drop operations.


Features

Version 5.2

  Version 5.2 has the following significant new features:
  More details and the list of bug fixes are provided in the development kit release notes.

  - added JGoCollection, a light weight JGoObjectCollection that you can pass to any method that requires a JGoObjectCollection

  - added JGoDocument.add method
  - added JGoDocument property: LinksLayer, layer to hold links; initially same as JGoDocument.getDefaultLayer()

  - added JGoDocument.addCopy method
  - added JGoObject.copy method
  - added copyComplete and finishDelayedCopies methods to JGoCopyEnvironment and JGoCopyMap

  - refactored JGoSubGraph by splitting into a new base class, JGoSubGraphBase, that can be used to implement your own subgraphs

  - added JGoDocument.sortByZOrder, to sort an array of JGoObjects by their Z-order in the JGoDocument
  - added JGoSelection.toArray, addArray, and addCollection
  - improved JGoView.copySelection, copyToClipboard, and createDragSelection to sort copied objects by their Z-order
  - improved drag-and-drop to transfer a copied JGoDocument instead of the JGoSelection, to avoid serializing the whole document;

  - added JGoLayeredDigraphAutoLayout property: PackOption, to help control what straightenAndPack does
  - added some methods for manipulating JGoNetworks

  - new UpdateDemo and BoxApp samples


Contents

  ./  - Release Notes (this README file)
      - JGo.jar, containing the JGo package *.class files
      - JGoSVG.jar, containing support for persistence using SVG
      - JGoLayout.jar, an evaluation version of the layout library
      - JGoInstruments.jar, an evaluation version of the instruments library
      - a BAT file for compiling and running the examples using the JDK on Windows.
      - a shell file for compiling and running the examples using the JDK on Unix.
      - example applications (executable JARs)

  ./docs  - User Guides for JGo, JGoLayout, and JGoInstruments (.pdf)
          - API Reference manual for JGo, JGoLayout, and JGoInstruments (.html)
          - license agreement files

  ./com/nwoods/jgo/svg  - a partial DTD file describing the SVG XML extensions used by JGo;
                          read the comments in this file for more information

  ./com/nwoods/jgo/examples  - some example classes:
        Comment class implements an area displaying text in a JGo3DNoteRect
        GeneralNode classes together implement SimpleNode with varying numbers of ports
        ListArea classes implement an area containing a scrollable list of objects
        MultiPortNode classes together implement a node with an image and a variable number
          of ports at arbitrary positions, and a draggable label
        RecordNode class uses a ListArea and associates ports with each item in the list
        SimpleNode classes together implement a node with an image, a label and two ports
        SVGGoView class renders output-only SVG files for a JGoView
        MinimalApp class implements a minimal applet/application
        BasicApp class implements a simple application using rectangular BasicNodes
        IconicApp class implements a simple application using IconicNodes

  ./com/nwoods/jgo/examples/demo1  - see the basic capabilities of JGo in an application

  ./com/nwoods/jgo/examples/boxapp  - a simple demonstration of using a JGoArea as a container

  ./com/nwoods/jgo/examples/classier  - a simple app that displays the JGo class hierarchy

  ./com/nwoods/jgo/examples/family  - a simple app that displays a family tree

  ./com/nwoods/jgo/examples/flower  - a more complicated app that edits workflow processes

  ./com/nwoods/jgo/examples/imager  - an example of how to generate JPEG images from documents
                                      and how to implement a simple graph editor as a servlet
                                      without using an applet
  
  ./com/nwoods/jgo/examples/instrumentdemo  - an app for displaying several different kinds of instruments

  ./com/nwoods/jgo/examples/jtreeapp  - a simple app demonstrating use of Swing JTrees as nodes within a JGoView
  
  ./com/nwoods/jgo/examples/layoutdemo  - an app for experimenting with the layout package
  ./com/nwoods/jgo/examples/layoutdemo/files  - several data files containing example graphs

  ./com/nwoods/jgo/examples/processor  - another more complicated app for editing graphs of
                                         nodes with varying numbers and positions of ports
                                         connected by orthogonal links that avoid crossing nodes
  ./com/nwoods/jgo/examples/processor/images - images used in the app

  ./com/nwoods/jgo/examples/sampleapp - the sample application built in chapter 9 of the User Guide

  ./com/nwoods/jgo/examples/svg  - the SVGImage class, for displaying SVG as a JGoImage object

  ./com/nwoods/jgo/examples/updatedemo  - a simple demonstration to show how updates happen

  ./com/nwoods/jgo/examples/webwalker  - a simple app that walks web pages and draws a tree


Examples

  You can run the sample applications immediately by executing command lines in
  in the top-level JGo directory, in the following manner, using JRE 1.4.1 or later:

    java -jar Demo1.jar

  You can build and modify the example apps yourself.  You can run the command
  file in the root directory to recompile and run all of the examples, after
  you edit it to make sure the paths are correct.

  Note that for the evaluation kit, the sources for the JGo libraries are not
  supplied; but of course they do come with the source kit for JGo.  The sources
  for JGoLayout and JGoInstruments are available separately--please contact
  GoSales@nwoods.com.

  However, you should be able to create new applications using JGo and JGoLayout
  and JGoInstruments or incorporate JGo and JGoLayout and JGoInstruments into
  your existing applications easily enough.

  The examples will compile and run with the basic SDK-SE functionality.
  However, some of the examples have latent functionality that depends on
  optional Java extensions.

  You will need to build the image editor web application in an environment
  that supports J2EE web applications:
  - the examples/imager web application depends on servlets
  Please note that running the evaluation versions of JGo on the server
  will cause JOptionPane message boxes to show up--you will need to click
  on this before the server can respond with the image that JGo renders.
  Please note also that JGoWebApp.war was compiled with JDK 5.0 (1.5);
  if your environment is using an earlier version of the JRE, you will need
  to compile the sample sources yourself.

  You will need to un-comment-out the relevant code and recompile in order
  to use certain extended features:
  - the examples/SVGGoView.java class depends on Apache's Batik's SVG generator


Licensing

  After you have purchased a license to JGo, you may distribute the supplied
  jar files or the files contained in those jar files, without royalties to
  Northwoods Software.  The same applies to JGoLayout and JGoInstruments.

  The software license is fully described in the docs/FullLicense.txt file.
  
  For distribution we recommend including only the files you need from our
  JAR files in your own JAR file, because this simplifies application management
  as well as decreasing disk space or download time.


Known Bugs and Misfeatures

  Problems with bugs in JRE previous to 1.4 have been deleted from this list;
  please refer to older JGo release notes for details.

  Sun's J2SDK/JRE 1.4.0 on Windows exhibits frequent "freezes" of your application
  for a couple of seconds.  The problem is not inherent to JGo.  See Java
  Developer Connection bug 4669873.  Upgrade to 1.4.1 or later.

  With Sun's JRE 1.5.0, updating of text may be off a pixel, causing text to
  appear muddled.  This is particularly true when the view's scale is not 1.0.
  You will need to upgrade to J2SE-RE 5.0 Update 2, 1.5.0_02 or later.


Support

  If you have any questions, send e-mail to:
    jgo@nwoods.com

  It would be helpful if you told us:
    - which version of JGo you are using
    - which JDK/JVM you are using
    - which platform you are running on
    - which development environment
    - how to reproduce the problem (if any) with some concise code
    - what features you would like to see
