On Jul 4, 2008, at 1:04 AM, Matthew Fulmer wrote:
On Thu, Jul 03, 2008 at 08:32:33PM +0200, St?phane Ducasse wrote:
I was wondering what is the amount of work to add traits support. The problem is that I do not have a big picture about all the palyer: classDecorator, classEditor.... It does not look complex but I'm ill so comment and a class diagram would help.
SystemEditor is an experiment done by Colin to try out a model he had to make loading truly atomic. He did the first 90% of the work; he made the model and got it passing the test suite. He then abandoned it and went back to working on Monticello2. Now, I am doing the other 90% of the work: fixing bugs, and cleaning up the code.
:) I know that. I did game dev long time ago and this was like that :)
ClassDecorator is something I made just 2 weeks ago to bring some extensibility to SystemEditor. Classes don't have the same properties on every system. On 3.9 systems, they have a traitDescription. In Tweak, they have fields. On Squeak 3.x, they have an organization. In Spoon, they have tags. So, there would be things like: - TraitDecorator - TweakFieldDecorator - ClassOrganizationDecorator - NaiadTagDecorator
depending on the system, and which extra packages are loaded. These decorators would insert behavior and state at various points in the life of a class editor (definition time, build time, migration time, etc.). They were inspired roughly by PRDocument decorators in Pier.
Ok add that to the class comment.
Why there is no common superclass?
MetaclassEditor needs to be a subclass of Behavior, since it creates instances (in order to support the class protocol: the class of a ClassEditor is a MetaclassEditor). The others, however could be subclasses of an AbstractEditor. I have created an AbstractEditor in my latest code (not yet uploaded), so that doing "AbstractEditor on: anObject" will create an instance of the correct editor class. Also, MethodDictionaryEditor and SystemEditor could both be subclasses of a DictionaryEditor; they share a lot of behavior like that.
good.
<snip lots of great code comments>
Thanks for the comments in the code. I will definitely apply them.
Also, thanks for your comments. They are helping a lot. I have a lot of the makings of a design document now.
Excellent. I asked david to improve the OB browser to display forms in the text pan when it browses Manifesto classes and methods with PNG I will ask him if this is possible to make a try for real. Thanks matthew.
-- Matthew Fulmer -- http://mtfulmer.wordpress.com/