Tools and Objects

Objects, Selection, and Handles

Objects on the canvas in the JAWAA editor are entities that contain some state and, during the export of a .anim file, show up as separate JAWAA objects. They include circles, rectangles, lines, nodes, and so on.

A selected oval

What is seen here is a selected oval. In short, a selected object can have things done to it: it can have its properties changed (like color and text, if appropriate), it can be moved by dragging it about, and it can be resized by dragging the handles. Objects that cannot be resized still display handles as a guide for when they are selected. The way one knows that an object is selected is that key points on its general bounds have these slightly transparent small translucent circles called handles surrounding them.

An object must exist at the current key frame to be considered selected. What this means in practice is that if one has an object selected at one key frame, move to another key frame where the object doesn't exist, then go back to the original key frame, the object shall be deselected.

Tools and Associated Objects

In this section there is an overview of the tools in the tool box. Most tools are the means by which objects are created, so the objects they create are described as well.

Tools always remain selected until one selects a new tool.

In the list below, the heading for a tool contains its icon in the tool bar, its name, and the key one can press to activate the tool.

Selector (S)
The selector allows for the selection of objects. One selects an object by clicking on it (the object becomes selected as soon as the mouse is down). Unless the object clicked on is already selected, all already selected objects will be deselected, and the clicked object will be selected.

In the event that objects are layered atop each other, a click will select the top object.

You can select a range of objects by clicking and dragging starting on an unused portion of the canvas. This will create a box, and any objects completely contained in that box will be selected.

If one holds shift down during a select action, any existing selections will remain intact. This allows the user to select multiple objects. During a drag-box-select action, if shift and control are down, existing selections will remain intact, but any selected objects inside the box will be deselected.

When the user clicks and drags an object, that translates the object by the amount dragged. If multiple objects are selected during the drag, all selected objects are translated as well.

The selector is also the only tool that can move around handles. You move a handle by clicking and dragging them. Usually a handle scales the object or in some way changes its geometry. (The exact action depends on the object having its handle dragged.)

Oval (O)
To create an oval, click on the canvas to specify the upper left hand corner of the oval, then drag down and to the right to indicate the point of the lower right hand corner of the rectangular bounds of the oval. There are eight handles for resizing the oval distributed evenly about the corners and sides of the rectangle that tightly bounds the oval. Variable properties that can change across time include outline color, fill color, width and height (by dragging handles), and location. Settable default properties for the tool are fill and outline color.
Circle (O)
The circle is another mode of the oval tool that constrains the oval to square bounds. Further, drags on the side handles will scale the object about its center rather than extend the object in that direction. Otherwise it is identical to an oval except that width and height are not independent. Settable default properties for the tool are fill and outline color.
Line (L)
To create a line, click at the start point of the line and drag to the end point of the line. There are two handles for setting the start and end points of the line at the start and end points. Variable properties that can change across time include line color, start and end points (by dragging the handles), and location. The settable default property for the tool is line color.
Rectangle (R)
The properties and behavior of a rectangle object and tool are identical to that of ovals, except that the shape drawn is a rectangle, not an ellipse. Settable default properties for the tool are fill and outline color.
Polygon (P)
To create a polygon, click out the points on the polygon. Clicking on the last point again to complete the polygon. Past creation, one cannot ever add a point to a polygon. There are as many handles on the polygon as there are points, and dragging one of those handles moves that point on the polygon. Variable properties that can change across time include outline color, fill color, point positions, and location. Variable properties that cannot change across time are the number of points. Settable default properties for the tool are fill and outline color.
Text (T)
To create a text label, click on the canvas where the baseline of the text (intuitively, a baseline is where an underline would go) should start. You are then queried for the contents of the text. There are six handles for the text object that serve no other purpose than to specify the bounds for the text. The origin (green) handle indicates the baseline, and all other handles outline the bounds of the text. Variable properties that can change across time include text color, points size, text contents, and location. The settable default property for the tool is text color.
Circular Node (N)
Nodes in general are the vertices in graphs, elements in a linked list, nodes in a tree, et cetera. Creation of a circular node is identical to that of a circle, but differs in that the node can have text fields inside of it, each field on a separate line. Each field has the same editable properties as a text object. The node itself has editable properties and handle behavior identical to that of a circle. Settable default properties for the tool are outline and fill color.

Notice the dull outline surrounding the second field, "drink"? That indicates that that is the current text field. Only one field can be the current text field. To change the current text field, click on the line that the field appears on. When a property change related to text is applied to the node, that change is applied only to the current text object of that node.

Rectangular Node (N)
Another mode of the node tool, the rectangular node tool is similar to the circular node tool. The node itself is identical as well except for how it draws itself, its editable properties, and its handle behavior, which are identical to those of the rectangle.
Edge (E)
The edge tool allows one to specify an edge between nodes as in a graph. To create an edge, click on one node, and drag to another node. An edge will appear between them. If one does not start the click on a node, no edge will be created. An edge has two handles at the start and end: dragging the handle over another node will set that end of the edge to that node. The variable property that can change across time is line color. All other properties, including the directedness of the edge (i.e., its arrows) and the nodes the edge connect cannot change through time. Any changes one makes to these properties will be made for all times, as JAWAA does not make a provision for changing these parameters after the edge has been created. Settable default properties for the tool are line color, and the number of arrows.
Delay (D)
The delay sets delays for frame. A delay generates "delay" commands in JAWAA that cause the JAWAA interpreter to pause for the given number of milliseconds on that frame. To set a delay, click on the canvas and a dialog will pop up allowing the user to specify the exact number of milliseconds. If a quicker and easier method is preferred and exacting precision isn't required, when clicking and dragging left and right on the canvas the tool to graphically scroll through possible choices for time.

Missing in Action

In the JAWAA animation language there are other objects that this animator cannot create at this time: node markers, queues, stacks, and groups. The first three were left out for lack of time, the last was left out because the way JAWAA groups work makes no sense in a graphical environment. These objects may find their way into a subsequent release.

Thomas Finley, 2001