Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Sum2002 M2: Easier-to-Use Drawing Editor
Now enhance your editor from M1. We'll start it the same way, and you have to provide all the facilities that you did before.
But now you must also provide:
- A Polygon editor tool. Each click with the left button should define another point, and a click with the right button ends the polygon. Assume that the polygon is closed.
- An ellipse-drawing tool. User interaction should be a click to define the upper-left and a drag to the lower-right, and drawing an ellipse within then.
- After drawing with any tool, the tool is de-selected. NOTE: You must explicitly identify for the user which tool is selected and when it is de-selected. NOTE ALSO: The button must remain visibly selected during the tool drawing.
- The ability to move objects. If no tool is selected, left-clicking (red button) on the object selects it, and it must become (visibly!) selected, and the user should be able to click on (somewhere other than on a handle) and drag the object.
- The ability to resize objects. When the object is selected, at least one visible "handle" (something that can be clicked and dragged) must appear. (For example, many drawing tools use black dots or squares at the vertices of an object as its handles.) If the handle is left-clicked and dragged, the object must resize in a reasonable way.
- The ability to delete objects. If no tool is selected, the user should be able to select an object by left-clicking on it, then typing the letter "D" to delete it. (Clicking on some magic/red halo is not acceptable.)
- Some persistence. Restoring the display should not delete any drawing. Hint: Consider building Morphs and putting them on a PasteUpMorph at the right places...
- A Export button which saves the image as a JPEG. Prompt the user for a filename, then save the image under that filename in the current Squeak image directory.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. It's REQUIRED to hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram of UI classes and class descriptions. There should also be a written, text description of each class and what it's methods do. THINK HARD ABOUT THIS.
- Well-documented, hardcopy source code (at least two lines of comments for each non-accessor method, in-line comments at significant portions) with your Team Name and all team members' names, sections, phone numbers, and student numbers on it. The phone numbers are for us to use if teams lose touch with one another. THIS IS THE LAST TURNIN FOR WHICH YOU WILL TURN IN SOURCE CODE.
"Good" will be evaluated with respect to Criteria for Good OOA/D.
Before class time, turn-in your code using the Summer 2002 Turnin Information.
- 15% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram and text description: Correct usage of notation (10%), understandable descriptions and names (5%), a generally good design (10%).
- 10% Well-documented and good style source code
- 45% Working system:
- 5% for a good usable UI, including being able to restore the display without losing anything. Note: If the TAs can't figure out how to use your tools, they don't have to give you the points. The UI must be usable.
- 10%: Move, resize, and delete of objects works
- 10%: All tool and object selections/deselections
- 10%: All drawing tools work
- 10%: Export works
Questions on Sum2002 M2 Milestone
Link to this Page