Holly Cummins wrote:
Hi all (and especially Zoe and Ozzy),
I've been having a play with the GOAT tool and appended my work as patches
to ARIES-319. I've made two main changes. I've introduced a decorator
framework for relationships so we can draw the service triangles (or
package names). The service handling will need to be updated slightly once
we're not working from the DummyInfoProvider. Handling of services which
aren't consumed and services which are consumed by multiple bundles is
pretty weak.
I've also started to add cascading configuration. I've added a Theme class
and a ComponentAppearance class which takes defaults from the theme and
allows them to be over-ridden. ComponentAppearances will also inherit from
one another when we have nested components (like a bundle inside an
application). I've only switched the ComponentColorElement (which was the
ComponentColorProperty) over to use the new configuration so far, but I'll
switch the other elements over to using the new configuration next.
Elements have two methods - render(), which draws them, and apply() which
initialises shared properties like colour. This allows for a two-phase
rendering. Apply isn't the best name but we're already using update(), so
suggestions welcome. :)
I've renamed ComponentColorProperty to be ComponentColorElement and
RelationshipAggregation to TwistieAggregation. I've also moved
RelationshipElement to the elements namespace. These are all svn file
deletions which will need to be done by hand when applying the hand.
I just applied and tested the patch - looks good.
I've also created a document with a start at a skeleton architecture
overview (and a draft logo!). It's quite sketchy so far but we can flesh
it out as we go on. I've attached that as a freestanding file so that it
doesn't clutter the patch, but I suggest putting it in trunk/samples/goat.
These are nice too. I think putting them with the rest of the slides
would be better than putting them in the source tree.
Zoƫ