[Pkg] SystemEditor: SystemEditor-mtf.15.mcz
squeak-dev-noreply at lists.squeakfoundation.org
squeak-dev-noreply at lists.squeakfoundation.org
Fri Nov 7 07:01:16 UTC 2008
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!
More information about the Packages
mailing list