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 4 Case Study -DY

Milestone 4 Specs

Getting Started

Our design from M3 was already thrown out the window with M4. Looking at the design while coding helps. Also, we recoded M2. Again. For some reason still unknown.

Making it Work

We decided to stick with old mvc conventions and added view and model classes to our GenealogyMap. Our UML got ugly very quickly. First we had to make a "visualization" for each person, contained in Person. We added a getTree function that returned an OrderedCollection of OrderedCollections of Persons - each generation was contained in a collection and a person's tree was the main orderedCollection. The TreeVisualizer class took that tree and drew each collection, aligning the people. After many hours spent trying to figure out how to add lines that would dynamically connect related people, we found Ned. Ned is our savior.
Here is Ned:
Uploaded Image: ned.jpg
(disclaimer: this may not really be Ned. This may be Randy Constan.)
Anyways, Ned wrote this great Morph class called NCConnectorMorph. It's part of a UML package, but we didn't use that. We did use the connector. And that is why Ned is our savior. To visit Ned, go here.
We also learned that things work differently when contained within SystemWindows than when contained in a TwoWayScrollPane. This caused many problems, and we eventually threw away all hope of getting the tree in the same window as the main interface.

The Design

Uploaded Image: m4ClassDiagram.jpg

Afterthoughts

  1. If you want to play with colors, take a look at the Color object. There are some crazy ways to mess with colors, like Blue veryMuchLighter or Gray slightlyWhiter.
  2. Plan ahead when making visuals - what will they be contained in and how will you call their creation?
  3. Look for things to help you out - other project files (Bob's Super Swiki has a lot - run a Google search).



Link to this Page