home *** CD-ROM | disk | FTP | other *** search
- JGraph - The JFC/Swing Graph Component (c)2001-2004
-
- 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
- -------------
- I am not liable for any damage caused by the use of this program.
-
-
-
- 2. Installation
- ---------------
-
- 2.1 Requirements
- ----------------
- o JGraph for Java 1.3 requires a Java 1.3 or later compatible virtual
- machine for your operating system. (Java 1.4.1 is recommended.)
- o JGraph for Java 1.4 requires a Java 1.4 or later compatible virtual
- machine for your operating system. (Java 1.4.1 is recommended.)
- The most recent version of Java can be obtained from http://java.sun.com/j2se/
- Compiling JGraph requires Ant, which may be obtained from http://ant.apache.org/
-
- 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 CVS distribution compiles
- with both versions of Java, whereas the binary and source distribution are
- only compatible with certain versions of Java. In all cases, the sequence
- of commands is the same, and independent of the Java version.
- All distributions require Ant for compilation. Ant requires ant.jar,
- xercesImpl.jar, xml-apis.jar and tools.jar from Java. (Note: Do not type
- the newline inside the classpath declarations below!)
-
- o On Unix, type the following depending on the location of Java and Ant:
- export JAVA_HOME=/usr/java/j2sdk1.4.1_02
- export ANT_HOME=/usr/ant/ant-1.5.4
- export CLASSPATH=$JAVA_HOME/lib/tools.jar:$ANT_HOME/lib/ant.jar:
- $ANT_HOME/lib/xercesImpl.jar:$ANT_HOME/lib/xml-apis.jar
- $JAVA_HOME/bin/java org.apache.tools.ant.Main
-
- o On Windows, type the following depending on the location of Java and Ant:
- set JAVA_HOME=c:\jdk1.3.1_06
- set ANT_HOME=c:\ant-1.5.4
- set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib\ant.jar;
- %ANT_HOME%\lib\xercesImpl.jar;%ANT_HOME%\lib\xml-apis.jar
- %JAVA_HOME%\bin\java org.apache.tools.ant.Main
-
- The build.xml file will automatically insert the TransferHandler.java file into
- the source tree and modify a series of source files when used with Java 1.3.
- (The TransferHandler ships with the CVS- and Java 1.3-distribution of JGraph.)
- This means that you cannot use the CVS-distribution in an IDE that runs on
- Java 1.3. You must use the Java 1.3-distribution in this case.
-
- 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
- - migrate --> Migrate source code to Java 1.3
- - 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:
-
- o On Unix:
- $JAVA_HOME/bin/java org.apache.tools.ant.Main example
-
- o On Windows:
- %JAVA_HOME%\bin\java org.apache.tools.ant.Main 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://jgraph.sourceforge.net/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 paper is available at http://www.jgraph.com/doc/paper/t1.html, a
- tutorial is available at http://www.jgraph.com/doc/tutorial/t1.html.
-
- 5.2 Support
- -----------
- Support is provided via the Home Page at http://www.jgraph.com/
- and Sourceforge project page at http://sourceforge.net/projects/jgraph/
- Please review the FAQ and forums before submitting a request.
- No support is provided via Email.
-
-
-
- 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://sourceforge.net/projects/jgraph/
-
- 6.2 Source code
- ---------------
- The sources of JGraph and JGraphpad are placed under the LGPL, MPL and a
- commercial license, and are available via anonymous CVS or as zip files at
- http://sourceforge.net/projects/jgraph/ and http://www.jgraph.com/.
-
-
-
- 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 showcase@jgraph.com.
-
-
-
- 8. License
- ----------
- For legal and licensing issues, please read the LICENSE or LICENSE2 file if
- available.
-
-
-
- 9. Contact Email
- ----------------
- Gaudenz Alder gaudenz (at) jgraph (dot) com
-
- For more information please visit
- http://www.jgraph.com/
-