Back to Winobjc

Constraint

deps/3rdparty/cassowary-0.60/java/cda/classes/run.html

0.1.0.15.12.224.0 KB
Original Source

Instructions at bottom of page



If any of you were interested in helping test (and providing feedback upon) my quals project (a constraint-based drawing applet that currently has no name), I'd much appreciate it.

How to run it:

If you have Netscape 4.03 or 4.04 with the "jdk 1.1 enhancements" you can run the applet from http://www.cs.washington.edu/homes/noth/Quals/classes/run.html. Note that the department has Netscape 4.02 installed, so you'll have to grab a newer version (*and* the Java upgrade) to have it work that way.

If you have access to the 1.1.x JDK (available under Linux on departmental machines, and maybe even NT in some cases), you can run appletviewer with the above URL.

My desktop box (ikura in 423) is running NT, has the JDK1.1.5 for NT installed, and has Netscape 4.04 w/ the necessary fiddly bits to run the applet, if that's more convenient. I usually work at home, and am virtually never here in the mornings, so feel free to use ikura then.

Notes about it:

  1. Under the Linux 1.1.3 JDK, the icons on the buttons seem to disappear after pressing the button. If that gets really really annoying, forcing a window repaint (covering it with another window, or minimizing and restoring it) seems to help. I don't know why it does that...
  2. To place an object, use the top 4 buttons (the line, line with midpoint, rectangle, and oval). Click the crosshair cursor to place the object, or hit ESC to cancel placement.
  3. Click on a point to select it (turns green). Use control + clicking to select multiple points. Click inside the blue box (visible only when the SHIFT key is down) around an object to select all of its associated points at once (the box around the selected object will be green, also, instead of the blue box currently used for highlighting)
  4. The constraints that can be established are:
  • Anchor constraint: Point stays where it is. Select one or more points, then click the anchor button to establish anchor constraints on them.
  • Colocation constraint: Point(s) stay together. Select two or more points, then click the colocation button (circle with inward arrows).
  • Relational constraints (above, below, left, right): Object stays above/below/left of/right of other object. The black box on the icon represents the "source" object, and the red the target object that will stay above/below/etc. the source. Select an entire object (click inside its blue box so all the points are selected), then the constraint button, then click the pointing hand cursor on the target object. The constraint is represented by a small red circle in the source object and a line going to the center of the target object.
  • Alignment constraints (left, right, top, bottom): Objects are aligned so that their left/right/top/bottom edge of their bounding boxes are all aligned vertically or horizontally (as appropriate). Select as many whole objects (so they are outlined in green) and click on the desired alignment button. The constraint is represented visually as a thin grey line along the appropriate edge of the constrained objects.
  1. To delete an object, select it and hit the d key.
  2. Drag the mouse to get a grey selection box.
  3. The i key prints some information about the current state of the application. In particular, you can see how many constraints it's maintaining.
  4. You can select the visual representation of a constraint with a single click (it gets outlined with a green box). The d key will delete any selected constraint as well as other objects.
  5. When dragging a point around, it will snap to other points if the cursor moves within the other point's box. When released, colocation constraints will be established between points that are exactly on top of each other (e.g., those that were snapped to).

If you could play with the applet for a while and email/tell me what you think, UI gripes/suggestions, etc., I'd really appreciate it.

Thanks in advance!

Michael Noth
[email protected]