[Morphic] Nebraska removal
Lic. Edgar J. De Cleene
edgardec2001 at yahoo.com.ar
Wed Dec 28 12:34:53 CET 2005
I hope this address the previous questions by Cees and Juan.
Edgar
-------------- next part --------------
'From Squeak3.9alpha of 4 July 2005 [latest update: #6705] on 28 December 2005 at 8:15:10 am'!
"Change Set: ReleaseBuilder-unloadNebraska
Date: 28 December 2005
Author: Edgar J. De Cleene
Second try. I hope I address the questions by Cess and Juan.
Still think what if we have a ReleaseBuilder class, we should use it for downloading things"!
WorldState subclass: #NebraskaWorldState
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Worlds'!
!ClassDescription methodsFor: 'accessing method dictionary' stamp: 'edc 11/10/2005 08:35'!
allMethodsInCategorybeginsWith: aName
"Answer a list of all the method categories of the receiver and all its
superclasses"
| aColl categorybeginsWith |
aColl := OrderedCollection new.
self withAllSuperclasses
do: [:aClass | categorybeginsWith := aClass organization categories
select: [:c | c beginsWith: aName]
thenCollect: [:any | any].
categorybeginsWith isEmptyOrNil
ifFalse: [categorybeginsWith
do: [:cat | aColl
addAll: (aClass organization listAtCategoryNamed: cat)]]].
^ aColl asSet asSortedArray! !
!ReleaseBuilder methodsFor: 'unloading' stamp: 'edc 12/28/2005 08:02'!
unloadNebraska
"Safe unload of StarSqueak from 3.9a 6703 image"
"ReleaseBuilder new unloadNebraska"
| toRemove selectorList actualClass |
SystemOrganization classifyAll: #(#EToyCommunicatorMorph ) under: 'Nebraska-Network-EToy Communications'.
toRemove := SystemOrganization categoriesMatching: 'Nebraska*'.
toRemove
do: [:each | SystemOrganization removeSystemCategory: each].
selectorList := SystemNavigation default allMethodsInCategorybeginsWith: '*nebraska'.
selectorList
do: [:each |
actualClass := Smalltalk
atOrBelow: (each findTokens: ' ') first asSymbol
ifAbsent: [].
actualClass removeSelector: (each findTokens: ' ') last asSymbol].
ReleaseBuilder new fixObsoleteReferences.
SystemOrganization removeEmptyCategories.
Smalltalk garbageCollect.! !
!SystemNavigation methodsFor: 'browse' stamp: 'edc 11/10/2005 07:00'!
allMethodsInCategorybeginsWith: category
| aCollection |
aCollection _ SortedCollection new.
Cursor wait showWhile:
[self allBehaviorsDo:
[:x | (x allMethodsInCategorybeginsWith: category) do:
[:sel | aCollection add: x name , ' ' , sel]]].
^aCollection.
! !
!WorldState methodsFor: 'update cycle' stamp: 'edc 12/28/2005 07:45'!
forceDamageToScreen: allDamage
Display forceDamageToScreen: allDamage.! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'ar 10/26/2000 14:11'!
addRemoteCanvas: c
self canvas: nil. "force recomputation"! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'ar 10/26/2000 14:17'!
assuredRemoteCanvas
| newCanvas |
(self canvas notNil) ifTrue: [ ^self canvas ].
newCanvas := MultiCanvas new.
newCanvas depth: 32.
newCanvas extent: viewBox extent.
self remoteCanvasesDo: [ :c | newCanvas addCanvas: c ].
newCanvas addCanvas: Display getCanvas.
"newCanvas := CachingCanvas on: newCanvas."
self canvas: newCanvas.
^newCanvas! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'sd 11/20/2005 21:25'!
releaseRemoteServer
"My server has been transferred to some other world. Release pending references"
remoteServer := nil.
self canvas: nil.! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'ar 10/26/2000 14:15'!
remoteCanvasesDo: aBlock
remoteServer ifNil:[^self].
^remoteServer clients do:[:client| aBlock value: client canvas]! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'ar 10/26/2000 14:08'!
remoteServer
^remoteServer! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'sd 11/20/2005 21:25'!
remoteServer: aNebraskaServer
remoteServer ifNotNil:[remoteServer destroy].
remoteServer := aNebraskaServer.
self canvas: nil.! !
!NebraskaWorldState methodsFor: 'canvas' stamp: 'ar 10/26/2000 14:17'!
removeRemoteCanvas: c
self canvas: nil. "force withdrawal of remote from MultiCanvas"
! !
!NebraskaWorldState methodsFor: 'update cycle' stamp: 'edc 12/28/2005 07:45'!
forceDamageToScreen: allDamage
"here for the convenience of NebraskaWorldState"
super forceDamageToScreen: allDamage.
self remoteCanvasesDo: [ :each |
allDamage do: [:r | each forceToScreen: r].
each displayIsFullyUpdated.
].! !
!WorldState reorganize!
('alarms' addAlarm:withArguments:for:at: adjustAlarmTimes: alarmSortBlock alarms removeAlarm:for: triggerAlarmsBefore:)
('canvas' assuredCanvas canvas canvas: doFullRepaint recordDamagedRect: resetDamageRecorder viewBox viewBox:)
('hands' activeHand addHand: hands handsDo: handsReverseDo: removeHand: selectHandsToDrawForDamage:)
('initialization' initialize stepListSize stepListSortBlock)
('object fileIn' convertAlarms convertStepList)
('objects from disk' convertToCurrentVersion:refStream:)
('stepping' adjustWakeupTimesIfNecessary adjustWakeupTimes: cleanseStepListForWorld: isStepping: isStepping:selector: listOfSteppingMorphs runLocalStepMethodsIn: runStepMethodsIn: startStepping:at:selector:arguments:stepTime: stopStepping: stopStepping:selector:)
('undo' commandHistory)
('undo support' clearCommandHistory)
('update cycle' checkIfUpdateNeeded displayWorldSafely: displayWorld:submorphs: doDeferredUpdatingFor: doOneCycleFor: doOneCycleNowFor: doOneSubCycleFor: drawWorld:submorphs:invalidAreasOn: forceDamageToScreen: handleFatalDrawingError: interCyclePause:)
('*MorphicExtras-hands' activeHand:)
('*nebraska-*nebraska-Nebraska support' addRemoteCanvas: assuredRemoteCanvas releaseRemoteServer remoteCanvasesDo: remoteServer remoteServer: removeRemoteCanvas:)
('*MorphicExtras-update cycle' displayWorldAsTwoTone:submorphs:color: doOneCycleInBackground startBackgroundProcess)
('*MorphicExtras-initialization' stepListSummary)
!
More information about the Morphic
mailing list