Diva
Home
About
Demos
Downloads
Packages
Forum
Mail lists

The Diva Canvas Design Reference

The Diva canvas is a structured graphics layer built on top of the Java2D API. It does not attempt to hide any of the complexity of Java2D, but provides a substrate based on Java 2D, that we can use for advanced, unconventional, and highly-interactive user interface and visualization components. (By structured graphics, we mean that it has objects that know how to draw themselves on the screen, rather than the immediate-mode graphics provided by Java2D).

The design of the Diva canvas comes from two divergent influences. First, structured 2D graphics packages such as HotDraw, Fresco, the Tycho Slate, provided the basic structuring approach, in which classes called Drawing, Glyph, or Item are sub-classed to provide application-specific classes, which can in turn contain other instance of this class. This approach provides tight encapsulation and makes programming interactive editors fairly simple, but suffers from limited flexibility in the rendering and display of these objects.

The second influence comes from 3D scene models such as Open Inventor and VTK. In these models, a scene is described in an explicit and exposed tree, which provides a very powerful and flexible construction and rendering model, but at the cost of complex data structures. To provide some of this flexibility without paying the cost of a large increase in data structure complexity, we "opened" the rendering model enough to allow complex rendering and transformation nodes to be inserted into the tree, but not enough to fully expose the tree structure.

Send feedback to cxh at eecs berkeley edu
Contact 
©2002-2018 U.C. Regents