A new version of SystemEditor was added to project SystemEditor: http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.152.mcz
==================== Summary ====================
Name: SystemEditor-mtf.152 Author: mtf Time: 5 November 2008, 2:34:40 pm UUID: 79d6be5c-e2f0-43c5-8ebf-749dd7acd870 Ancestors: SystemEditor-mtf.151
in ClassDecorator, seperated building and installing into two methods
=============== Diff against SystemEditor-mtf.151 ===============
Item was changed: ----- Method: MetaclassEditor>>edBuild (in category 'building') ----- edBuild | result class | class := self subject ifNil: [Metaclass] ifNotNil: [self subject class]. result := class basicNew. "Create a temporary MethodDictionary to catch code written by SyntaxError dialogs. MethodDictionaryEditor will overwrite this. See MethodEditor>>compileFor:" result superclass: self edSuperclass methodDictionary: MethodDictionary new format: self format; organization: self organization edBuild. result setInstVarNames: self instVarNames. + self decoratorsDo: [:ea | ea edBuildInto: product]. - self decoratorsDo: [:ea | ea edBuild]. ^ result!
Item was added: + ----- Method: ClassDecorator>>edBuildInto: (in category 'building') ----- + edBuildInto: aProduct + "Build what needs to be built, and install it into aProduct"!
Item was changed: ----- Method: ClassDecorator>>edBuild (in category 'building') ----- edBuild + "Build what needs to be built, but don't install it"! - "Build what needs to be built into my client's product"!
Item was changed: ----- Method: ClassEditor>>edBuild (in category 'building') ----- edBuild | meta | meta := self class edBuild. product := subject ifNil: [meta new] ifNotNil: [meta adoptInstance: subject from: subject class]. product superclass: self edSuperclass; setFormat: self format; setName: self name; setInstVarNames: self instVarNames; classPoolFrom: self; instVarNamed: #sharedPools put: self sharedPools; organization: self organization edBuild. "Create a temporary MethodDictionary to catch code written by SyntaxError dialogs. MethodDictionaryEditor will overwrite this. See MethodEditor>>compileFor:" product methodDictionary: MethodDictionary new. + self decoratorsDo: [:ea | ea edBuildInto: product]. - self decoratorsDo: [:ea | ea edBuild].
"Class methods should be compiled before instance methods, since #compilerClass may be among the class methods. Class methods should be compiled after installing class and pool variables" product class methodDictionary: (self class methods buildFor: self class). product methodDictionary: (self methods buildFor: self). ^product!
packages@lists.squeakfoundation.org