A new version of TraitEditor was added to project SystemEditor: http://www.squeaksource.com/SystemEditor/TraitEditor-mtf.12.mcz
==================== Summary ====================
Name: TraitEditor-mtf.12 Author: mtf Time: 21 October 2008, 10:21:49 pm UUID: 06e532cd-ef6f-4ef8-83ef-75abd40f4bd6 Ancestors: TraitEditor-mtf.11
filled in missing code, mostly in the area of TraitCompositionEditor building
=============== Diff against TraitEditor-mtf.11 ===============
Item was added: + ----- Method: TraitComposition>>asTraitCompositionEditor (in category '*TraitEditor') ----- + asTraitCompositionEditor + ^ TraitCompositionEditor from: self!
Item was added: + ----- Method: TraitDescriptionEditor>>asTraitCompositionEditor (in category 'reflecting') ----- + asTraitCompositionEditor + ^TraitCompositionEditor with: self!
Item was added: + ----- Method: TraitEditor>>asTraitCompositionEditor (in category 'reflecting') ----- + asTraitCompositionEditor + ^TraitCompositionEditor with: self!
Item was added: + ----- Method: SequenceableCollection>>asTraitCompositionEditor (in category '*TraitEditor') ----- + asTraitCompositionEditor + ^ self asTraitComposition asTraitCompositionEditor!
Item was added: + ----- Method: TraitEditor>>edPrepareExport: (in category 'building') ----- + edPrepareExport: exporter + ^exporter addClass: self product!
Item was changed: ----- Method: TraitDescriptionEditor>>edExpandEditors (in category 'building') ----- edExpandEditors + | users | + users := self users collect: [:ea | ea theNonMetaClass]. + users do: [:ea | ea edTraitModified]. + ^ users! - ^ self users collect: [:ea | ea theNonMetaClass]!
Item was added: + ----- Method: TraitEditor>>edBuild (in category 'building') ----- + edBuild + product := Trait + named: self name + uses: #() + category: self category. + + "Create a temporary MethodDictionary to catch code written by SyntaxError dialogs. MethodDictionaryEditor will overwrite this. See MethodEditor>>compileFor:" + product methodDictionary: MethodDictionary new. + + product organization: self organization edBuild. + self decoratorsDo: [:ea | ea edBuild]. + + product methodDictionary: (self methods buildFor: self). + ^product!
Item was added: + ----- Method: TraitCompositionEditor>>isEmpty (in category 'reflecting') ----- + isEmpty + ^self transformations isEmpty!
Item was changed: AbstractEditor subclass: #TraitCompositionEditor instanceVariableNames: 'subject transformations' classVariableNames: '' poolDictionaries: '' category: 'TraitEditor'!
+ !TraitCompositionEditor commentStamp: 'mtf 10/20/2008 11:22' prior: 0! + I store the new version of a TraitComposition. I don't use any kind of diff between the subject and product. For now at least, I don't use a TraitTransformationEditor, but use plain TraitTransforms which include TraitEditors + + Unlike most editors, I am not persistent. Transient instances of myself are usually built, and only then is my subject and environment set. This is how TraitDescriptions work, so, that is how I work! - !TraitCompositionEditor commentStamp: 'mtf 10/14/2008 10:02' prior: 0! - I store the new version of a TraitComposition. I don't use any kind of diff between the subject and product. For now at least, I don't use a TraitTransformationEditor, but use plain TraitTransforms which include TraitEditors!
Item was added: + ----- Method: TraitEditor>>category (in category 'reflecting') ----- + category + "If this isn't cached, SystemEditorBrowser is really slow. And it doesn't affect the correctness of the editor, so do it by default" + ^ category ifNil: [category := subject category]!
Item was added: + ----- Method: TComposingDescription>>asTraitCompositionEditor (in category '*TraitEditor') ----- + asTraitCompositionEditor + ^TraitCompositionEditor with: self!
Item was added: + ----- Method: TraitTransformation>>asTraitCompositionEditor (in category '*TraitEditor') ----- + asTraitCompositionEditor + ^TraitCompositionEditor with: self!
Item was added: + ----- Method: TraitCompositionEditor>>asTraitCompositionEditor (in category 'reflecting') ----- + asTraitCompositionEditor + ^ self!
Item was added: + ----- Method: TraitCompositionEditor class>>from: (in category 'instance creation') ----- + from: aTraitComposition + ^ self new from: aTraitComposition!
Item was added: + ----- Method: PureBehaviorEditor>>setTraitComposition: (in category '*TraitEditor') ----- + setTraitComposition: aTraitComposition + | oldComposition | + (self hasTraitComposition not and: [aTraitComposition isEmpty]) ifTrue: [^self]. + aTraitComposition assertValidUser: self. + + oldComposition := self traitComposition. + self traitComposition: aTraitComposition. + self applyChangesOfNewTraitCompositionReplacing: oldComposition. + + oldComposition traits do: [:each | each removeUser: self]. + aTraitComposition traits do: [:each | each addUser: self]!
Item was added: + ----- Method: TraitDescription>>asTraitCompositionEditor (in category '*TraitEditor') ----- + asTraitCompositionEditor + ^TraitCompositionEditor with: self!
Item was added: + ----- Method: PureBehaviorEditor>>edTraitModified (in category '*TraitEditor') ----- + edTraitModified + "Mark myself as having had a trait modified" + + self decorateWith: TraitCompositionDecorator!
Item was removed: - Object subclass: #TraitTransformationEditor - instanceVariableNames: 'subject additions removals' - classVariableNames: '' - poolDictionaries: '' - category: 'TraitEditor'!
packages@lists.squeakfoundation.org