Copyright (c) 1995, 1996 Regents of the University of California.
All rights reserved.
This software was developed by the Arcadia project
at the University of California, Irvine.
Section 1. Vision
Basically, I want to have a nice, stable graph editing and
MacDraw-style graphics editing framework. I need that as a starting
point for a tool I am building for my Ph.D. research, and I think that
others need a framework like that as well.
Some of the goals of the framework are to support these features:
- Full editing of unstructured graphics, so that it is possible to
make nice looking diagrams.
- Ease of use, so that people who are browsing the web can figure out
what to do with my demos without having to read a lot of
documentation.
- Connected graph editing, because that is needed in my application.
- Multiple, coordinated views, so that complex connected graphs can be
visualized in different ways.
- Easy integration with application specific code, so that people can
put a graphical front end on their applications without rewriting
everything around my framework.
- Simple enough for college students to learn and use in 10 weeks.
I think it would be really interesting to organanize a "virtual
software development team" over the internet so that: (1) I don't have
to do all the coding myself, (2) the final framework is tempered by
actual application, (3) we all get experience in distributed
development, (4) I get in contact with professional developers for
future collaboration, user testing, and even job offers. As virtual
team leader I promise to integrate changes, run the project web page,
suggest projects, and avoid duplication of effort. I am especially
interested in instructors at universities who want to use this
software as material for project classes (see the history section of
the GEF home page).
The framework should promote the creation of good demos for the
www. That means that they should download quickly, look nice, have
enough features to look professional, and let the user get to the point
of the demo without fighting with a difficult interface.
More importantly, the framework should promote the creation of good
applications. It should have a rich set of basic features. It should
be easily customized to a given application. It should look nice and
be easy to use (or at least be like other applications).
Section 2. Overall Architecture
There are two main levels in the Graph Editing Framework (GEF)
representation: (1) the net level, and (2) the diagram level. The net
level holds nodes which are logical objects that may have application
specific data and behavior. The diagram level made up of
Figs for structured and unstructured graphics that
visually depict the net and various annotations.
I expect that people will use the framework by extending it by adding
new classes. In Java the class is the most important unit of syntax,
version control, code distribution, and dynamic loading. I have tried
design the framework so that people never have to modify existing
code. I don't know if that is not the case yet, but hopefully it will
be.
The graph editor (in class Editor) is just a shell that dispatches
control to various other objects that do the actual drawing and
processing of input events. The supporting classes are in several
clusters described below.