A new version of SystemEditor was added to project SystemEditor: http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.116.mcz
==================== Summary ====================
Name: SystemEditor-mtf.116 Author: mtf Time: 14 August 2008, 1:55:15 pm UUID: 03bb2860-3b03-40b3-be9c-883924a75dad Ancestors: SystemEditor-mtf.115
created DictionaryEditor to be a common superclass to both SystemEditor and MethodDictionaryEditor, and renamed the SystemEditor ivar "editors" to "additions", for uniformity
=============== Diff against SystemEditor-mtf.115 ===============
Item was added: + AbstractEditor subclass: #DictionaryEditor + instanceVariableNames: 'subject additions removals' + classVariableNames: '' + poolDictionaries: '' + category: 'SystemEditor-Editors'!
Item was changed: + Dictionary subclass: #MethodDictionaryEditor + instanceVariableNames: 'classEditor' - Object subclass: #MethodDictionaryEditor - instanceVariableNames: 'classEditor subject additions removals' classVariableNames: '' poolDictionaries: '' category: 'SystemEditor-Editors'!
Item was changed: ----- Method: SystemEditor>>includesKey: (in category 'reflecting') ----- includesKey: aSymbol (removals includes: aSymbol) ifTrue: [^ false]. + (additions includesKey: aSymbol) ifTrue: [^ true]. - (editors includesKey: aSymbol) ifTrue: [^ true]. subject ifNil: [^ false]. (subject includesKey: aSymbol) ifTrue: [^ true]. ^ false!
Item was changed: ----- Method: SystemEditor>>at:ifAbsent: (in category 'reflecting') ----- at: aSymbol ifAbsent: aBlock | newEditor | (removals includes: aSymbol) ifTrue: [^ aBlock value]. + additions at: aSymbol ifPresent: [:editor | ^ editor]. - editors at: aSymbol ifPresent: [:editor | ^ editor]. subject at: aSymbol ifPresent: [:obj | newEditor := AbstractEditor on: obj for: self ifNotHandled: [^ obj]. ^ newEditor edRegisterEditor]. ^ aBlock value!
Item was changed: ----- Method: SystemEditor>>keyAtIdentityValue:ifAbsent: (in category 'reflecting') ----- keyAtIdentityValue: anObject ifAbsent: aBlock + ^ additions - ^ editors keyAtIdentityValue: anObject ifAbsent: [subject keyAtIdentityValue: anObject ifAbsent: aBlock]!
Item was changed: ----- Method: SystemEditor>>edPrepareMigration: (in category 'building') ----- edPrepareMigration: txn
showProgress + ifFalse: [additions do: [:ea | ea edPrepareMigration: txn]] + ifTrue: [additions do: [:ea | ea edPrepareMigration: txn] displayingProgress: 'Preparing Transaction...']! - ifFalse: [editors do: [:ea | ea edPrepareMigration: txn]] - ifTrue: [editors do: [:ea | ea edPrepareMigration: txn] displayingProgress: 'Preparing Transaction...']!
Item was changed: ----- Method: SystemEditor>>editors (in category 'accessing') ----- editors + ^ additions! - ^ editors!
Item was changed: + DictionaryEditor subclass: #SystemEditor + instanceVariableNames: 'organization showProgress' - Object subclass: #SystemEditor - instanceVariableNames: 'subject editors removals organization showProgress' classVariableNames: '' poolDictionaries: '' category: 'SystemEditor-Editors'!
Item was changed: ----- Method: SystemEditor>>hasBindingThatBeginsWith: (in category 'reflecting') ----- hasBindingThatBeginsWith: aString "Answer true if the receiver has a key that begins with aString, false otherwise" + additions keysDo:[:each | - editors keysDo:[:each | ((each beginsWith: aString) and: [(removals includes: each) not]) ifTrue:[^true]]. subject keysDo:[:each | ((each beginsWith: aString) and: [(removals includes: each) not]) ifTrue:[^true]]. ^false!
Item was changed: ----- Method: SystemEditor>>edRecategorize (in category 'building') ----- edRecategorize + additions do: - editors do: [:ea | ea edCategory ifNotNilDo: [:cat | SystemOrganization classify: ea name under: cat]]!
Item was changed: ----- Method: SystemEditor>>edExpandEditors (in category 'building') ----- edExpandEditors | queue editor | + queue := additions values asOrderedCollection. - queue := editors values asOrderedCollection. [queue isEmpty] whileFalse: [editor := queue removeFirst. editor subject ifNotNil: [ queue addAll: editor edExpand]] !
Item was changed: ----- Method: SystemEditor>>edRemoveClassNamed: (in category 'editing') ----- edRemoveClassNamed: aSymbol + additions removeKey: aSymbol ifAbsent: []. - editors removeKey: aSymbol ifAbsent: []. removals add: aSymbol!
Item was changed: ----- Method: SystemEditor>>setSubject: (in category 'initialize-release') ----- setSubject: anEnvironment subject := anEnvironment. + additions := IdentityDictionary new. - editors := IdentityDictionary new. removals := Set new.!
Item was changed: ----- Method: SystemEditor>>edRegisterEditor: (in category 'building') ----- edRegisterEditor: anEditor + additions at: anEditor name put: anEditor! - editors at: anEditor name put: anEditor!
Item was changed: ----- Method: SystemEditor>>validate (in category 'building') ----- validate + additions do: [:ea | ea validate]! - editors do: [:ea | ea validate]!
Item was changed: ----- Method: SystemEditor>>edSubclassesOf: (in category 'building') ----- edSubclassesOf: anEditor | subeditors | subeditors := OrderedCollection new. anEditor subject ifNotNilDo: [ :class | subeditors addAll: (class subclasses collect: [ :ea | self edEditorFor: ea ]) ]. + additions do: [ :ea | ea superclassOrEditor == anEditor ifTrue: [ subeditors add: ea ] ]. - editors do: [ :ea | ea superclassOrEditor == anEditor ifTrue: [ subeditors add: ea ] ]. ^ subeditors asArray!
Item was changed: ----- Method: SystemEditor>>edPrepareExport: (in category 'building') ----- edPrepareExport: exporter
showProgress + ifFalse: [additions do: [:ea | ea edPrepareExport: exporter]] + ifTrue: [additions do: [:ea | ea edPrepareExport: exporter] displayingProgress: 'Preparing Classes...']! - ifFalse: [editors do: [:ea | ea edPrepareExport: exporter]] - ifTrue: [editors do: [:ea | ea edPrepareExport: exporter] displayingProgress: 'Preparing Classes...']!
Item was changed: ----- Method: SystemEditor>>associationAt:ifAbsent: (in category 'reflecting') ----- associationAt: aSymbol ifAbsent: aBlock
self at: aSymbol ifAbsent: [^ aBlock value]. "first create any editors necessary" + ^ additions associationAt: aSymbol - ^ editors associationAt: aSymbol ifAbsent: [subject associationAt: aSymbol]!
packages@lists.squeakfoundation.org