[Pkg] SystemEditor: TraitEditor-mtf.10.mcz
squeak-dev-noreply at lists.squeakfoundation.org
squeak-dev-noreply at lists.squeakfoundation.org
Thu Oct 16 01:35:15 UTC 2008
A new version of TraitEditor was added to project SystemEditor:
http://www.squeaksource.com/SystemEditor/TraitEditor-mtf.10.mcz
==================== Summary ====================
Name: TraitEditor-mtf.10
Author: mtf
Time: 15 October 2008, 6:36:28 pm
UUID: d35f9358-9c86-49b8-a3b7-31549dc1bde5
Ancestors: TraitEditor-mtf.9
filled in more of TraitEditor. Trait committing now works through the validate and expand stages
=============== Diff against TraitEditor-mtf.9 ===============
Item was added:
+ ----- 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 added:
+ ----- 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 added:
+ ----- Method: TraitDescriptionEditor>>users (in category 'reflecting') -----
+ users
+ ^ self environment edUsersOf: self!
Item was added:
+ ----- 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 added:
+ ----- Method: TraitDescriptionEditor>>edExpandEditors (in category 'building') -----
+ edExpandEditors
+ ^ self users collect: [:ea | ea theNonMetaClass]!
Item was added:
+ ----- 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 '*TraitEditor') -----
hasTraitComposition
+ (self hasProperty: #traitComposition) ifTrue: [^ true].
+ self subject ifNil: [^ false].
+ ^ self subject hasTraitComposition!
- ^ self traitComposition notNil!
Item was changed:
----- Method: PureBehaviorEditor>>traitComposition (in category '*TraitEditor') -----
traitComposition
+ "Answers an editor on my traitComposition, creating it if necessary"
+
+ ^ self propertyAt: #traitComposition
+ ifAbsentPut: [TraitCompositionEditor
+ on: (self subject ifNotNil: [self subject traitComposition])
+ for: self]!
- ^ self propertyAt: #traitComposition ifAbsent: [nil]!
Item was added:
+ ----- 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 added:
+ ----- Method: TraitDescriptionEditor>>validate (in category 'validating') -----
+ validate
+ "Nothing to validate. Do nothing"!
Item was added:
+ ----- Method: PureBehaviorEditor>>traitCompositionIncludes: (in category '*TraitEditor') -----
+ traitCompositionIncludes: aTraitEditor
+ ^ self == aTraitEditor or: [self edUsesTrait: aTraitEditor]!
Item was added:
+ ----- Method: SystemEditor>>edUsersOf: (in category '*TraitEditor') -----
+ edUsersOf: aTraitEditor
+ "Answers all subclasses of aTraitEditor, as editors"
+
+ ^ (self edUsersOrEditorsOf: aTraitEditor) collect: [:ea | self edEditorFor: ea]!
More information about the Packages
mailing list