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

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Thu Oct 30 06:00:22 UTC 2008


A new version of TraitEditor was added to project SystemEditor:
http://www.squeaksource.com/SystemEditor/TraitEditor-mtf.13.mcz

==================== Summary ====================

Name: TraitEditor-mtf.13
Author: mtf
Time: 29 October 2008, 11:00:10 pm
UUID: b8c20879-a3f0-48a1-9a19-72fe7fce711d
Ancestors: TraitEditor-mtf.12

filled in more about TraitComposition building

=============== Diff against TraitEditor-mtf.12 ===============

Item was added:
+ ----- Method: TraitCompositionEditor>>assertValidUser: (in category 'reflecting') -----
+ assertValidUser: anEditor
+ 	"Assert that this trait composition set for aBehavior
+ 	does not introduce a cycle."
+ 	
+ 	self allTraitsOrEditorsDo: [:trait | trait == anEditor ifTrue: [
+ 		TraitCompositionException signal: 'Cycle in compositions:  The composition (in)directly includes this trait!!']]!

Item was added:
+ ----- Method: TraitCompositionDecorator>>traitComposition (in category 'accessing') -----
+ traitComposition
+ 	^ editor traitComposition!

Item was changed:
  ----- Method: PureBehaviorEditor>>traitComposition: (in category '*TraitEditor') -----
  traitComposition: aTraitCompositionOrCollection
+ 	self edInvalidateTrait.
- 	self decorateWith: TraitCompositionDecorator.
  	self propertyAt: #traitComposition put: aTraitCompositionOrCollection!

Item was added:
+ ----- Method: TraitTransformationEditor class>>from: (in category 'instance creation') -----
+ from: aTraitTransformation
+ 	^ self new from: aTraitTransformation!

Item was changed:
  ----- Method: ClassEditor>>subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category: (in category '*TraitEditor') -----
  subclass: aSymbol uses: traitComposition instanceVariableNames: instString classVariableNames: classString poolDictionaries: poolString category: categoryString 
  	^ self subclass: aSymbol
  		instanceVariableNames: instString
  		classVariableNames: classString
  		poolDictionaries: poolString
  		category: categoryString;
+ 		setTraitCompositionFrom: traitComposition;
- 		traitComposition: traitComposition;
  		yourself
  	!

Item was added:
+ ----- Method: PureBehaviorEditor>>setTraitCompositionFrom: (in category '*TraitEditor') -----
+ setTraitCompositionFrom: aTraitCompositionExpression
+ 	self setTraitComposition: aTraitCompositionExpression asTraitCompositionEditor!

Item was added:
+ AbstractEditor subclass: #TraitTransformationEditor
+ 	instanceVariableNames: 'transformation'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'TraitEditor'!
+ 
+ !TraitTransformationEditor commentStamp: 'mtf 10/24/2008 21:43' prior: 0!
+ I am a minimal wrapper around a TraitTransformation to support building. I have no subject!

Item was changed:
  ----- Method: TraitEditor class>>named:uses:category:env: (in category 'instance creation') -----
  named: aName uses: aTraitCompositionOrCollection category: aCategory env: anEnvironment
  	
  	^ (self named: aName for: anEnvironment)
+ 		setTraitCompositionFrom: aTraitCompositionOrCollection;
- 		traitComposition: aTraitCompositionOrCollection;
  		category: aCategory;
  		yourself!

Item was added:
+ ----- Method: TraitCompositionEditor>>allTraitsOrEditorsDo: (in category 'accessing') -----
+ allTraitsOrEditorsDo: aBlock
+ 	transformations do: [:transformation | | trait |
+ 		trait := self system classOrEditorFor: transformation trait.
+ 		aBlock value: trait.
+ 		trait hasTraitComposition
+ 			ifTrue: [trait traitComposition allTraitsOrEditorsDo: aBlock]]!

Item was added:
+ ----- Method: TraitCompositionEditor>>from: (in category 'accessing') -----
+ from: aTraitComposition
+ "Initializes my transformations from aTraitComposition"
+ 	transformations := aTraitComposition transformations
+ 		collect: [:ea | ea copyTraitExpression]!

Item was added:
+ ----- Method: TraitTransformationEditor>>from: (in category 'initialize-release') -----
+ from: aTraitTransformation
+ 	transformation := aTraitTransformation copyTraitExpression!

Item was changed:
  ----- Method: TraitCompositionDecorator>>edBuild (in category 'building') -----
  edBuild
+ 	editor product traitComposition: self traitComposition edBuild.
+ 	self traitComposition edApplyChanges.
+ 	self applyChangesOfNewTraitCompositionReplacing: self subject.!
- 	^ self traitCompositionDo: [:comp | comp edBuild]!

Item was added:
+ ----- Method: TraitCompositionDecorator>>validate (in category 'validating') -----
+ validate
+ 	^ self traitComposition assertValidUser: editor!

Item was added:
+ ----- Method: PureBehaviorEditor>>edInvalidateTrait (in category '*TraitEditor') -----
+ edInvalidateTrait
+ "Mark myself as having had a trait modified"
+ 
+ 	self decorateWith: TraitCompositionDecorator!

Item was changed:
  ----- Method: TraitTransformation>>asTraitCompositionEditor (in category '*TraitEditor') -----
  asTraitCompositionEditor
+ 	^TraitCompositionEditor with: (TraitTransformationEditor from: self)!
- 	^TraitCompositionEditor with: self!

Item was added:
+ ----- Method: TraitDescriptionEditor>>edExpand (in category 'building') -----
+ edExpand
+ 	| users |
+ 	users := self users collect: [:ea | ea theNonMetaClass].
+ 	users do: [:ea | ea edInvalidateTrait].
+ 	^ users!

Item was changed:
  ----- Method: PureBehaviorEditor>>traitComposition (in category '*TraitEditor') -----
  traitComposition
  "Answers an editor on my traitComposition, creating it if necessary"
  
  	^  self propertyAt: #traitComposition 
+ 		ifAbsentPut: [self edInvalidateTrait.
- 		ifAbsentPut: [self decorateWith: TraitCompositionDecorator.
  			TraitCompositionEditor
  				on: (self subject ifNotNil: [self subject traitComposition])
  				for: self]!

Item was changed:
  ----- Method: PureBehaviorEditor>>setTraitComposition: (in category '*TraitEditor') -----
  setTraitComposition: aTraitComposition
  	| oldComposition |
  	(self hasTraitComposition not and: [aTraitComposition isEmpty]) ifTrue: [^self].
- 	aTraitComposition assertValidUser: self.
  
+ 	aTraitComposition
+ 		setSubject: (self subject ifNotNil: [self subject traitComposition])
+ 		parent: 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 removed:
- ----- Method: TraitDescriptionEditor>>edExpandEditors (in category 'building') -----
- edExpandEditors
- 	| users |
- 	users := self users collect: [:ea | ea theNonMetaClass].
- 	users do: [:ea | ea edTraitModified].
- 	^ users!

Item was removed:
- ----- Method: TraitDescriptionEditor>>validate (in category 'validating') -----
- validate
- "Nothing to validate. Do nothing"!

Item was removed:
- ----- Method: PureBehaviorEditor>>edTraitModified (in category '*TraitEditor') -----
- edTraitModified
- "Mark myself as having had a trait modified"
- 
- 	self decorateWith: TraitCompositionDecorator!



More information about the Packages mailing list