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


Milestone 2 was surely one of the greatest victories for the Van Buren Boys. It was our first chance to work together, and like Martin Van Buren's term in office, we would not disappoint. Not only did we implement one of the premier error reporting systems, but we also developed a fresh, new GUI design that would become the basis for our later GUI development.

Error Checking

The first step in our error checking was the addition of a set of symbols that would be returned by the model's modifiers in the event of an error. If the change was allowed we returned #success, but if it failed the test we had it return one of the following error symbols(#conflictsWithGender, #conflictsWithSpouse, #conflictsWithChild and a variety of date conflicts). Whenever the View attempted to update the model it would receive either #success and the model and view would update or it would receive an error symbol which it would send to the errorMessage method. The errorMessage method would then process the symbol and report the error to the user.


The second phase of M2 involved creating a user interface for updating families and persons. To accomplish this task we decided to use Morphic, because it basically had all the functionality that we needed(StringMorph, PluggableButtonMorph, PluggableListMorph and the ever popular RectangleMorph which we used to format our GUI). Below are some samples of the different windows we created:

Genealogy Window

GenealogyWindow, created by Alexander Knowles, was at this point the driver class for our program. It allowed the user to add/view new persons and families.

Family Window

FamilyWindow, created by Dano, has the ability to add and remove the husband, wife and children of a family while implementing the self checks during updates.

Person Window

Person window, created by Mich, has the ability to change a person's information and view the person's relationships and families.

Pitfalls and Updates

Our most obvious error in this milestone was the failure to include an Export Genealogy button on our Genealogy window; we would later add this in M3/M4.

We also didn't properly implement Squeak's MVC using self: changed for this Milestone. The views updated properly along with the model, but this would cause problems later in our project and we eventually implemented MVC correctly.

Best of M2

Note that the range of days is dependent on the month chosen to reduce user error by forbidding invalid days. One of the most important things we learned from this project is that the best way to reduce user error is to prevent those situations from ever occurring in the first place. You should keep this in mind while creating your user interface. MVB will appreciate it.

Link to this Page