Skip to content
Snippets Groups Projects
README 8.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • gregor herrmann's avatar
    gregor herrmann committed
    JGraph - The JFC/Swing Graph Component (c)2001-2007
    
    
    A component to display and edit graphs (networks) with Java
    
    by Gaudenz Alder
    
    
    TABLE OF CONTENTS
    *****************
    
    1. Disclaimer
    2. Installation
       2.1 Requirements
       2.2 Compiling
    3. What is it?
       3.1 Purpose
       3.2 Features
       3.3 History
    4. Overview
       4.1 Implementation
       4.2 Architecture
    5. Getting Help
       5.1 Documentation
       5.2 Support
    6. Obtaining JGraph
       6.1 Binaries
       6.2 Source Code
    7. Misc
       7.1 Tips and tricks
       7.2 Showcase
    8. License
    9. Contact Email
    
    
    
    1. Disclaimer
    -------------
    Please read the license under which your version of JGraph is licensed for any
    warranty limitation.
    
    
    2. Installation
    ---------------
    
    2.1 Requirements
    ----------------
    
    gregor herrmann's avatar
    gregor herrmann committed
    o  JGraph requires a Java 1.4 or later compatible virtual 
    
       machine for your operating system.
    o  Apache Ant.   
       
    The most recent version of Java can be obtained from http://java.sun.com/j2se/
    Compiling JGraph requires Ant. To obtain Ant go to http://ant.apache.org/
    and select Binary Distributions of the left hand side navigation. Select the 
    nearest mirror then download the compressed file appropriate for your platform
    (.zip for Windows and .tar.gz for UNIX). Then decompress the file into your
    selected directory path for the Ant binaries.
    
    2.2 Compiling
    -------------
    The project has the following directory structure:
    
    src/      Source root
    examples/ Examples root
    build/    Build environment
    dist-*/   Distributables
    
    The compilation of JGraph requires Ant and the build.xml file. The same build
    file is used for all distributions. However, the binary and source distribution
    are only compatible with certain versions of Java.
    
    o On Unix, type the following depending on the location of Java and Ant:
    
    gregor herrmann's avatar
    gregor herrmann committed
         export JAVA_HOME=/usr/java/j2sdk1.4.1_12
         export ANT_HOME=/usr/ant/ant-1.6.2
    
         export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin/
    
    o On Windows, type the following depending on the location of Java and Ant:
    
    gregor herrmann's avatar
    gregor herrmann committed
         set JAVA_HOME=c:\j2sdk1.4.1_12
         set ANT_HOME=c:\ant-1.6.2
    
         set PATH=%PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin
    
    The build.xml file offers the following targets:
    
    - all (*)      --> Clean up and produce all distributions
    - apidoc       --> Generate the API specification (javadoc)
    - build        --> Run all tasks to completely populate the build directory
    - clean        --> Delete all generated files and directories
    - compile      --> Prepare (migrate) and compile the source tree
      - prepare    --> Copy source code to build directory
    - dist         --> Produce fresh distributions
    - distclean    --> Clean up the distribution files only
    - doc          --> Generate all documentation
    - init         --> Initialize the build; create directories, call tstamp
    - jar          --> Build all Java archives (JARs)
    - make-example --> Compile the example tree
    - example      --> Run the main example UI
    
    (*) all is the default target.
    
    Target names may be appended to the above Java commands. For example,
    to compile and run the example UI type the following:
    
    ant example
    
    3. What is it?
    --------------
    The intention of this project is to provide a freely
    available and fully Swing compliant implementation of a
    graph component.
    
    3.1 Purpose
    -----------
    With the JGraph zoomable component, you can display objects
    and relations (networks) in any Swing UI. JGraph can also be
    used on the server-side, for example to read a GXL graph,
    apply a custom layout algorithm, and return the result as an
    SVG image.
    
    3.2 Features
    ------------
    o Edge Editing: Add/Remove/Edit Points; Connect, Disconnect; Labels
    o Moving/Sizing: Transaction-Based, with Live-Preview
    o Selection: Single-Cell and Marquee Selection.
    o Zoom: Arbitrary  Zoom; Uses JavaTM 2D
    o Layering: View-Dependent Inter- and Intracell Layering
    o Grouping: Children Selectable; Uses Tree-Interface
    o Grid:Customizable Size, Color, Appearance
    o In-Place Editing: Direct Text Editing for all Cells
    o View Attributes: Cells have Separate Attributes for each attached View
    o Ports: Multiple Connection Points for each Cell
    o Handles: Flexible Interface for Cell-Modifications
    o Drag and Drop: Between JGraphs, JVMs and other applications/OS
    o Clipboard: Supports Multiple Transfer Formats
    o Command History: Multi-View; for all available Operations
    o Look-and-Feel: All Swing Pluggable Look-and-Feels
    o Routing: Customizable Routing with default algorithms
    o Visibility: Hide edges, vertices and groups
    o Attribute-Split: Per attribute control of view-only attributes
    o Clustering: Folding/Unfolding of groups into vertices
    o Ant-based: Ant-based build environment
    o Precision: Double precision coordinates
    o Labels: Draws labels along edges
    
    
    
    4. Overview
    -----------
    
    4.1 Implementation
    ------------------
    The following design principles guided the implementation
    of JGraph:
      
    o Full Swing Compatibility
    o Clear & Efficient Design
    o Short Download Time
    o 100 % Pure JavaTM
    
    4.2 Architecture
    ----------------
    No need to learn another complex product! JGraph integrates
    nicely into the Swing component class hierarchy, because it
    is based on the Swing MVC pattern. The API and implementation
    complies with the JavaTM Code Conventions. All classes in
    JGraph have their equivalents in Swing, and all features are
    fully Swing compatible.
    
    
    
    5. Getting Help
    ---------------
    The FAQ is at http://www.jgraph.com/faq.html
    
    5.1 Documentation
    -----------------
    The API specification is included in this distribution and also available at 
    http://api.jgraph.com/. For additional information, updates, binaries and 
    source code see the Home Page of JGraph at http://www.jgraph.com/
    A complete and up to date User Manual is available at
    http://www.jgraph.com/downloads.html. The User Manual should be the next
    document you read after this one.
    
    5.2 Support
    -----------
    Support is available through the Support section of the JGraph
    web site at http://www.jgraph.com/support.html. On this page the process
    of finding help is explained. Please note that no free support is provided
    via email.
    
    
    gregor herrmann's avatar
    gregor herrmann committed
    A number of examples are available in the examples package of the JGraph 
    download.
    
    
    6. Obtaining JGraph
    -------------------
    The Home Page of JGraph can be found at http://www.jgraph.com/
    
    6.1 Binaries
    ------------
    The Binaries of JGraph are distributed on
    http://www.jgraph.com/downloads.html
    
    6.2 Source code
    ---------------
    The sources of JGraph are placed under the LGPL and a commercially oriented
    license, and the LGPL version is available via anonymous CVS or as zip files 
    via the download link at http://www.jgraph.com/downloads.html.
    
    
    7. Misc
    -------
    
    7.1 Tips and Tricks
    -------------------
    To create multiline labels you can use HTML. Here is an example:
    <html>first line<br>second line</html>
    The following key bindings are supported by default: 
    o Alt-Drag: Force marquee selection
    o Shift-Select: Extend selection
    o Control-Select: Toggle selection
    o Control-Drag: Clones selection
    o Shift-Drag: Constrained drag
    To add and remove bends (edge points) you can press the right mouse button 
    while holding down the Shift key. To use the quadratic and bezier line style 
    the edge must have 1 and 2 intermediate points respectively.
    
    7.2 Showcase
    ------------
    Please send screenshots to info (at) jgraph (dot) com if you would like to
    see your application on the JGraph web site.
    
    7.3 Other JGraph packages
    -------------------------
    JGraph Layout Pro is a package of commercial-grade layout routines supporting
    the full range of JGraph features. Layout Pro comes with example applications
    that demonstrating features such as auto-layout, collapsing/expanding of
    grouped cells, graph morphing and selective layouting of sub-graphs.
    
    
    gregor herrmann's avatar
    gregor herrmann committed
    JGraphpad is a professional implementation of a complete JGraph application
    
    framework. It provides a flexible document model and XML-configurable user 
    interface with pluggable actions, tools and custom components. It also provides 
    features such as a palette (library), overview panel (birds-eye view), rich-text
    data in cells, movable ports, expanding/collapsing, drag and drop and standard
    XML encoding i/o in a fully-plugable framework architecture.
    
    
    gregor herrmann's avatar
    gregor herrmann committed
    mxGraph is a digramming library that provides all of the graph features you 
    expect natively in a web browser. Try it out at http://www.mxgraph.com
    
    
    
    8. License
    ----------
    For legal and licensing issues, please read the LICENSE file.
    All source and binaries in this package remain copyrighted to Gaudenz Alder.
    
    
    
    9. Contact Email
    ----------------
    Sales                          sales (at) jgraph (dot) com
    
    For more information please visit
    http://www.jgraph.com/
    
    
    What's Next?
    ------------
    
    Download and read the JGraph User Manual from http://www.jgraph.com/downloads.html.