[Pkg] SystemEditor: TraitEditor-mtf.12.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Wed Oct 22 05:20:32 UTC 2008


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'!



More information about the Packages mailing list