A new version of Installer-Core was added to project Installer:
http://www.squeaksource.com/Installer/Installer-Core-mtf.248.mcz
==================== Summary ====================
Name: Installer-Core-mtf.248
Author: mtf
Time: 23 October 2008, 4:27:03 pm
UUID: f54dd95b-7fbb-473c-823a-2e2f49f19c7d
Ancestors: Installer-Core-mtf.247
made the syntax "Installer url install: 'http://a.b.c/file.st" work
=============== Diff against Installer-Core-mtf.247 ===============
Item was changed:
----- Method: Installer class>>url (in category 'url') -----
url
+ ^ InstallerUrl new url: ''!
- ^ InstallerUrl new!
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'!