The Mica Graphics Framework satisfies almost all of these requirements. It is
a graphics library to manage all aspects of 2D graphics applications. It is
completely written in JAVA, is well documented and is open-source. It provides
support for advanced features such as network graph layouts, event handling
and action percolation. Mica places heavy emphasis to ease of use, high-level
of functionality and the ability to mix common user-interface widgets with
not so common widgets and graphs. It supports inter-mingling of graphing
editors, drawing editors and user interfaces. This last feature was important
for the implementation of the knowledge web applications. Mica has extensive
support for display lists, event handling, action dispatching, coordinate
transforms and connectivity. Mica also facilitates infinite undo/redo, zoom
and pan, layers and layer tabs, cut/copy/paste to/from clipboard, rulers,
tool-hints, status bars, tool bars and default menus.
All the classes of the Mica framework are contained in the same package. The
framework provides several default graphical components, which include shapes,
connections, widgets like push buttons, tables, windows, doalogs, editors etc.
The framework contains a large number of behavioral objects called event
handlers which can be assigned to any graphics object. Events in Mica are
objects that contain useful information about the input event that generated
them. The Mica Graphics Framework may be freely downloaded from Software
Farm(www.swfm.com). For more information refer to [9].