Purpose and Functionality of the Editor

JAWAA (Java And Web based Algorithm Animation) is a very simple language for defining algorithm animations. The JAWAA editor allows one to lay out animations graphically by laying out objects, and then modifying them across time. The editor then has the ability to export the animations laid out to an .anim file, a text document with commands to display the animation in the JAWAA interpreter.

Animation in the JAWAA Editor

The animation is built through key frames. At each key frame, an object has a certain state that can change across key frames. A key frame in the JAWAA editor is a discrete unit of time at which time the state of objects is stable. In a JAWAA .anim file, key frames can be thought of as the times before a set of commands executes, and just after that set of commands have finished executing.

When the .anim file is generated, the key frames are stepped through one by one, and the commands necessary to morph the state of an object from one key frame to the next are generated.


This is the JAWAA editor window.

The interface for the JAWAA editor is modeled largely on popular vector graphics and animation programs, which is why it looks like a primitive crossbreed of Adobe Illustrator and Corel (previously Metacreations) Bryce.

Canvas and Contents

The large white area extending from the middle-right is the canvas, which has some sample objects inside it (including two nodes, a connecting edge, and a transparent rectangle). On this canvas one creates, moves, and resizes objects.

The edge connecting the two nodes has those little dots on its start and end points to indicate that it is selected. Those dots are called handles. Only a selected object will display its handles. In general handles can be dragged about to resize an object.

Notice that the handles are different colors: one is green, the other is blue. Objects typically have one green handle to indicate that that's where the object started, that that is its origin: with text objects it's the start of the baseline of the text, with regular geometric objects (like nodes, rectangles, ovals, etc) it's the upper left hand corner of the object.


To the left of the canvas is the tool box. Most of the items there are for the creation of objects, like circles, text objects, lines, nodes, and so on. The selector tool (the top left tool) is a special tool to allow one to modify existing objects by being able to select them, drag them about, and resize them.

The currently active tool is reflected by the darkened button. For example, in the screen capture above, the edge tool is active. To make a different tool active one would simply press that tool's button.

Notice that some tools have a small triangle in the lower right hand corner of the button. This indicates that this tool has multiple modes. The oval tool, for example (the top right tool) has two modes: oval or circle. If a tool has other modes, one can cycle through them by repeatedly pressing the tool button once it is already selected, or by context-clicking on the button to bring up a popup menu from which one can choose the mode.

A more in depth discussion of the toolbox's properties as well as specific tools and the objects they create can be found in the Tools and Objects section of this documentation.

Property Bar

The property bar is the horizontal tool bar separating the menu bar from the canvas and toolbox. This particular tool bar is actually two tool bars.

The bar on the left, the one over the tool bar, addresses properties of defaults in the tool. For example, for the currently selected tool bar, what defaults are available are the default line color and how many arrows are placed on edges (the current default is a non directed edge).

The bar on the right, over the canvas where the objects are stored, contains buttons to press to alter properties of objects. The currently selected object, an edge, can have its edge color edited and its number of arrows, as well as some annotation to use in code generation and the name for the object for use in code generation.

More information about the different properties that can be edited can be found in the Editing Properties section of the documentation.

Menu Bar

The menu bar contains the traditional items available in a menu bar, including commands relevant to saving and restoring states through files, exporting the .anim file, quitting, and standard edit commands like copy, paste. A more detailed description of the menu items can be found in the Menus section of the documentation.

Key Frame Browser

The definition of time in JAWAA is merely a sequence of key frames as described above. The key frame browser allows for the addition of, deletion of, and traversal through key frames. When the editor is first opened there is only one key frame, so the editor needs the ability to create key frames and move across key frames, as well as the ability to remove key frames. The browser provides that capability.

The text display on the left displays the current key frame with the number of key frames. In the example picture, the "2/3" label means the animation is displaying the second of three key frames. As one traverses the frames either through the VCR style browser icons, or through the slider on the right, the display on the canvas will change to reflect the state of the objects for that key frame.

More information on the key frames and how objects work across different times can be found in the Key Frame Continuum section of the documentation.

Title Bar

The title bar for the editor window is rather simple. It merely says JAWAA editor, plus the name of the file open for that window in parenthesis or, if this is an untitled document, it merely displays <untitled> just as the example session above does.

Thomas Finley, 2001