Fall Term 2004
Changes/corrections in red.
Develop a JFC/Swing
application that implements a "map distance calculator". Assume the map is an image file that
contains a legend, for example, a3-map1.gif. The example image is a map showing York
University and the surrounding region (see below). Note the legend in the top
right-hand corner.

Before calculating a
distance, a process of calibration is needed to establish the relationship
between screen coordinates and map distances. Once calibrated, map distances are computed by allowing the
user to interact with the map. As
an example, the user might want to know the distance from the York campus
(Keele St. and Steeles Ave.) to a friend's apartment at Bathurst St. and Finch
Ave. Depending on the intention,
the user might want to know the distance "as the crow flies" (below
left) or as a driving distance (below right).

General notes:
1. Your application should be robust with a good user interface. Make appropriate use of the various GUI components and features supported in JFC/Swing. Consider the organization, presentation, interaction, and over-all usability of your program.
2. Include any features or options you feel are necessary to make your application useful and appealing to the user.
3. Your source code should be well organised and documented.
4. You must do this assignment in groups of three.
5. Do not use the york package.
6. Your programs must compile and run on Ariel (the Prism computers).
7. The assignments will be awarded letter grades, according to the university's letter grade standard. A program that simply fulfils the requirements described here will be awarded a 'C'. To get a higher grade, we want to see "an excellent job and originality" in your assignment solutions.
8. Name your program 'a3.java'. Submit it on Ariel with 'submit 3461x a3 a3.java' where 'x' is your section (A, or B). Additional files, if required, may be submitted using the same command, with the filename as the last argument. (Use 'man submit' for further details on using the submit command.)
9. Also submit a text file named 'intro' in which you describe the rationale behind your software design. Why did you use the JFC/Swing and HTML components that you did, and why did you organise them that way? Briefly justify your design. If your implementation includes any special features, make sure you describe these and provide appropriate instructions.
10. The intro text file should also contain a record of your group meetings. Include the date and time of each meeting, the people present, and the topics discussed. If other forms of communication were used (e.g., e-mail, phone), indicate the type and extent. Also include in your intro file a record of the tasks assigned and performed by each member of the team.
11. Note: the first three lines of the intro file must contain the following four comma-delimited fields, with nothing following the fourth field.
LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s)