View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

RF M2 Cases Page

Problem:

Our goals for M2:

1.) Extend P1 to include the following buildings:


2.) Indicate each building using some method( X's,squares,images,etc.)

3.) The buidlings should be able to be clickable. They must popup
their name and window in a seperate, closable window.

Analysis:

The first part of the analysis involved picking which M1 to use.
The second part involved analyzing our task and choosing how to
implement it. We knew squeak had a way to implement pluggable
buttons and probably had a way to popup a window. Thus we decided
to use this information to plan our design.

Design:

For the buildings it was decided that it would be
more effcient to just instantiate an ordered collection of
building's (A class we made). We further thought it prudent to
have a class to hold the building information, a class to
handle generic information to display via a popup window, and
finally a class to combine the previous two. We did this in
order to promote reusability. The following is our UML for
this project:

Uploaded Image: prj2uml.gif

Implementation:

The real question is how does it work. What methods and techniques
made our lives a little easier. The buildings, as afore mentioned,
were grouped into an OrderedCollection of Building(s). They were
displayed via the PluggableButtonMorph class. The popup window was
implemented by extending the SystemWindow class to handle displaying
the information where we wanted it, etc. The following is the actual code for this milestone:

p2GtCampusMap.st




Evaluation:

In retrospect, this milestone was done well in efficiency, however it was greatly lacking in design. The GTCampusMap class should have been broken up into a couple more classes, such as a Street class and maybe some kind of model-view dichotomy. The pluggable buttons could have used a little more work, maybe pictures or something. Also, looking ahead past this project may have saved time later on with the building buttons and map drawing etc. It just goes to show that good design can save a lot of time. There is not a lot to say about this milestone. It was pretty simple. The hard part was not knowing what Squeak could do. It is important to get to know your browser and the method finder. Also, it is important not to be scared to play with the code already there. It is very valuable to think about how classes can use inheritance or how pieces of code can be used in a new class. Everything in squeak is there you just have to find it.


Link to this Page