A new version of SystemEditor-Traits was added to project SystemEditor: http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.15.mcz
==================== Summary ====================
Name: SystemEditor-mtf.15 Author: mtf Time: 7 November 2008, 12:00:57 am UUID: 9dd3a7ec-f524-42b0-a509-8435a9854ecf Ancestors: TraitEditor-mtf.14
Renamed from TraitEditor to SystemEditor-Traits
=============== Diff against TraitEditor-mtf.14 ===============
Item was added: + SystemOrganization addCategory: #'SystemEditor-Traits'!
Item was changed: + ----- Method: TraitComposition>>asTraitCompositionEditor (in category '*systemeditor-traits') ----- - ----- Method: TraitComposition>>asTraitCompositionEditor (in category '*TraitEditor') ----- asTraitCompositionEditor ^ TraitCompositionEditor from: self!
Item was changed: + ----- Method: PureBehaviorEditor>>traitComposition: (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>traitComposition: (in category '*TraitEditor') ----- traitComposition: aTraitCompositionOrCollection self edInvalidateTrait. self propertyAt: #traitComposition put: aTraitCompositionOrCollection!
Item was changed: PureBehaviorEditor subclass: #TraitDescriptionEditor instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - category: 'TraitEditor'!
!TraitDescriptionEditor commentStamp: 'mtf 6/20/2008 22:21' prior: 0! A base class for both TraitEditor and ClassTraitEditor!
Item was changed: + ----- Method: ClassEditor>>braceWith:with: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceWith:with: (in category '*TraitEditor') ----- braceWith: a with: b "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceWith: a with: b!
Item was changed: + ----- Method: SequenceableCollection>>asTraitCompositionEditor (in category '*systemeditor-traits') ----- - ----- Method: SequenceableCollection>>asTraitCompositionEditor (in category '*TraitEditor') ----- asTraitCompositionEditor ^ self asTraitComposition asTraitCompositionEditor!
Item was changed: + ----- Method: PureBehaviorEditor>>traitCompositionOrEditor (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>traitCompositionOrEditor (in category '*TraitEditor') ----- traitCompositionOrEditor "Answers my traitComposition as either a TraitComposition (if it has not changed) or as an editor (if it has changed, or subject is nil)"
^ self propertyAt: #traitComposition ifAbsent: [self subject ifNil: [self traitComposition] ifNotNil: [self subject traitComposition]]!
Item was changed: + ----- Method: SystemEditor>>edUsersOf:do: (in category '*systemeditor-traits') ----- - ----- Method: SystemEditor>>edUsersOf:do: (in category '*TraitEditor') ----- edUsersOf: aTraitEditor do: aBlock "Answers all users of aTraitEditor, as editors"
self edUsersOrEditorsOf: aTraitEditor do: [:ea | aBlock value: (self edEditorFor: ea)]!
Item was changed: + ----- Method: PureBehaviorEditor>>hasTraitComposition (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>hasTraitComposition (in category '*TraitEditor') ----- hasTraitComposition (self hasProperty: #traitComposition) ifTrue: [^ true]. self subject ifNil: [^ false]. ^ self subject hasTraitComposition!
Item was changed: + ----- Method: ClassEditor>>braceWith:with:with: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceWith:with:with: (in category '*TraitEditor') ----- braceWith: a with: b with: c "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceWith: a with: b with: c!
Item was changed: + ----- Method: ClassEditor>>braceWith:with:with:with: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceWith:with:with:with: (in category '*TraitEditor') ----- braceWith: a with: b with: c with: d "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceWith: a with: b with: c with: d!
Item was changed: + ----- Method: ClassEditor>>subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category: (in category '*systemeditor-traits') ----- - ----- 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; yourself !
Item was changed: + ----- Method: PureBehaviorEditor>>setTraitCompositionFrom: (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>setTraitCompositionFrom: (in category '*TraitEditor') ----- setTraitCompositionFrom: aTraitCompositionExpression self setTraitComposition: aTraitCompositionExpression asTraitCompositionEditor!
Item was changed: AbstractEditor subclass: #TraitTransformationEditor instanceVariableNames: 'transformation' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - 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: ClassEditor>>named:uses:category: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>named:uses:category: (in category '*TraitEditor') ----- named: aName uses: aTraitComposition category: aCategory "This allows the following doit to be executed in the context of a SystemEditor: Trait named: uses: category: " self name == #Trait ifFalse: [self shouldNotImplement]. ^ TraitEditor named: aName uses: aTraitComposition category: aCategory env: self environment!
Item was changed: + ----- Method: ClassEditor>>braceWith: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceWith: (in category '*TraitEditor') ----- braceWith: a "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceWith: a!
Item was changed: + ----- Method: PureBehaviorEditor>>edUsesTrait: (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>edUsesTrait: (in category '*TraitEditor') ----- edUsesTrait: aTraitEditor self hasTraitComposition ifFalse: [^ false]. self traitCompositionOrEditor traits do: [:ea | ea == aTraitEditor ifTrue: [^ true]. ea == aTraitEditor subject ifTrue: [^ true]]. ^ false!
Item was changed: + ----- Method: SystemEditor>>edUsersOf: (in category '*systemeditor-traits') ----- - ----- Method: SystemEditor>>edUsersOf: (in category '*TraitEditor') ----- edUsersOf: aTraitEditor "Answers all subclasses of aTraitEditor, as editors"
^ (self edUsersOrEditorsOf: aTraitEditor) collect: [:ea | self edEditorFor: ea]!
Item was changed: AbstractEditor subclass: #TraitCompositionEditor instanceVariableNames: 'subject transformations parent' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - 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!
Item was changed: + ----- Method: ClassEditor>>braceStream: (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceStream: (in category '*TraitEditor') ----- braceStream: nElements "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceStream: nElements!
Item was changed: + ----- Method: TComposingDescription>>asTraitCompositionEditor (in category '*systemeditor-traits') ----- - ----- Method: TComposingDescription>>asTraitCompositionEditor (in category '*TraitEditor') ----- asTraitCompositionEditor ^TraitCompositionEditor with: self!
Item was changed: + ----- Method: SystemEditor>>edUsersOrEditorsOf:do: (in category '*systemeditor-traits') ----- - ----- Method: SystemEditor>>edUsersOrEditorsOf:do: (in category '*TraitEditor') ----- edUsersOrEditorsOf: aTraitEditor do: aBlock "Evaluate aBlock for each user of aTraitEditor, as either an editor (if it has changed), or as a class/trait (if it has not changed). Does not add any items to my additions list"
| users | users := aTraitEditor subject ifNil: [IdentitySet new] ifNotNilDo: [:trait | trait users]. additions do: [:classEditor | {classEditor. classEditor class} do: [:ea | users remove: ea subject ifAbsent: []. (ea traitCompositionIncludes: aTraitEditor) ifTrue: [aBlock value: ea]]]. removals do: [ :removedKey | users remove: (subject at: removedKey) ifAbsent: []]. users do: aBlock!
Item was changed: + ----- Method: PureBehaviorEditor>>edInvalidateTrait (in category '*systemeditor-traits') ----- - ----- 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 '*systemeditor-traits') ----- - ----- Method: TraitTransformation>>asTraitCompositionEditor (in category '*TraitEditor') ----- asTraitCompositionEditor ^TraitCompositionEditor with: (TraitTransformationEditor from: self)!
Item was changed: ClassDecorator subclass: #UserListDecorator instanceVariableNames: 'parent additions removals subject' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - category: 'TraitEditor'!
!UserListDecorator commentStamp: 'mtf 11/5/2008 13:45' prior: 0! I edit the users list of a Trait!
Item was changed: TraitDescriptionEditor subclass: #TraitEditor instanceVariableNames: 'name classTrait category' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - category: 'TraitEditor'!
Item was changed: + ----- Method: PureBehaviorEditor>>traitComposition (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>traitComposition (in category '*TraitEditor') ----- traitComposition "Answers an editor on my traitComposition, creating it if necessary"
^ self propertyAt: #traitComposition ifAbsentPut: [self edInvalidateTrait. TraitCompositionEditor on: (self subject ifNotNil: [self subject traitComposition]) for: self]!
Item was changed: + ----- Method: SystemEditor>>edUsersOrEditorsOf: (in category '*systemeditor-traits') ----- - ----- Method: SystemEditor>>edUsersOrEditorsOf: (in category '*TraitEditor') ----- edUsersOrEditorsOf: aTraitEditor "Answer all users of aTraitEditor, as either an editor (if it has changed), or as a class/trait (if it has not changed). Does not add any items to my additions list"
| collection | collection := OrderedCollection new. self edUsersOrEditorsOf: aTraitEditor do: [:ea | collection add: ea]. ^ collection!
Item was changed: + ----- Method: ClassEditor>>braceWithNone (in category '*systemeditor-traits') ----- - ----- Method: ClassEditor>>braceWithNone (in category '*TraitEditor') ----- braceWithNone "Allows brace arrays used in TraitCompositions to execute in an editor context"
^ self subject braceWithNone!
Item was changed: Object subclass: #ClassTraitEditor instanceVariableNames: 'baseTrait' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - category: 'TraitEditor'!
Item was changed: + ----- Method: PureBehaviorEditor>>setTraitComposition: (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>setTraitComposition: (in category '*TraitEditor') ----- setTraitComposition: aTraitComposition (self hasTraitComposition not and: [aTraitComposition isEmpty]) ifTrue: [^self].
aTraitComposition setSubject: (self subject ifNotNil: [self subject traitComposition]) parent: self. self traitComposition: aTraitComposition!
Item was changed: + ----- Method: TraitDescription>>asTraitCompositionEditor (in category '*systemeditor-traits') ----- - ----- Method: TraitDescription>>asTraitCompositionEditor (in category '*TraitEditor') ----- asTraitCompositionEditor ^TraitCompositionEditor with: self!
Item was changed: ClassDecorator subclass: #TraitCompositionDecorator instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' + category: 'SystemEditor-Traits'! - category: 'TraitEditor'!
Item was changed: + ----- Method: PureBehaviorEditor>>traitCompositionIncludes: (in category '*systemeditor-traits') ----- - ----- Method: PureBehaviorEditor>>traitCompositionIncludes: (in category '*TraitEditor') ----- traitCompositionIncludes: aTraitEditor ^ self == aTraitEditor or: [self edUsesTrait: aTraitEditor]!
Item was removed: - SystemOrganization addCategory: #TraitEditor!
On Fri, Nov 07, 2008 at 08:01:16AM +0100, squeak-dev-noreply@lists.squeakfoundation.org wrote:
A new version of SystemEditor-Traits was added to project SystemEditor: http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.15.mcz
==================== Summary ====================
Name: SystemEditor-mtf.15 Author: mtf Time: 7 November 2008, 12:00:57 am UUID: 9dd3a7ec-f524-42b0-a509-8435a9854ecf Ancestors: TraitEditor-mtf.14
Renamed from TraitEditor to SystemEditor-Traits
This version is a typo. I gave it the wrong name. I deleted it from squeaksource
packages@lists.squeakfoundation.org