[squeak-dev] The Trunk: ST80-dtl.54.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 24 01:07:08 UTC 2009


David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.54.mcz

==================== Summary ====================

Name: ST80-dtl.54
Author: dtl
Time: 23 September 2009, 9:04:51 am
UUID: 93745599-d881-4dca-a682-f47a84c2e983
Ancestors: ST80-ar.53

Implement MVCProject>>addDeferredUIMessage: and move implementation for deferred UI messages from DeferredActionStandardSystemController to Controller. This allows scheduling deferred of deferred UI actions regardless of which controller is currently active. This is important when, for example, deferred actions are scheduled during system startup and a ScreenController is the active controller (ProcessBrowser may do this during startup). Reference Mantis 1578.


=============== Diff against ST80-ar.53 ===============

Item was added:
+ ----- Method: Controller>>deferredActionQueue (in category 'basic control sequence') -----
+ deferredActionQueue
+ 
+ 	^deferredActionQueue ifNil: [deferredActionQueue := SharedQueue new]!

Item was changed:
  ----- Method: Controller>>controlActivity (in category 'control defaults') -----
  controlActivity
  	"Pass control to the next control level (that is, to the Controller of a 
  	subView of the receiver's view) if possible. It is sent by 
  	Controller|controlLoop each time through the main control loop. It should 
  	be redefined in a subclass if some other action is needed."
  
+ 	[self deferredActionQueue isEmpty]
+ 		whileFalse: [deferredActionQueue next value].
  	self controlToNextLevel!

Item was added:
+ ----- Method: Controller>>addDeferredUIMessage: (in category 'basic control sequence') -----
+ addDeferredUIMessage: valuableObject 
+ 	"Arrange for valuableObject to be evaluated the next time the 
+ 	controlActivity for this controller becomes active."
+ 
+ 	self deferredActionQueue nextPut: valuableObject!

Item was added:
+ ----- Method: MVCProject>>addDeferredUIMessage: (in category 'scheduling') -----
+ addDeferredUIMessage: valuableObject 
+ 	"Arrange for valuableObject to be evaluated at a time when the user interface
+ 	is in a coherent state."
+ 
+ 	ScheduledControllers activeController
+ 		ifNotNilDo: [:controller | controller addDeferredUIMessage: valuableObject]!

Item was changed:
  Object subclass: #Controller
+ 	instanceVariableNames: 'model view sensor deferredActionQueue lastActivityTime'
- 	instanceVariableNames: 'model view sensor lastActivityTime'
  	classVariableNames: 'MinActivityLapse'
  	poolDictionaries: ''
  	category: 'ST80-Kernel-Remnants'!
  
  !Controller commentStamp: '<historical>' prior: 0!
  A Controller coordinates a View, its model, and user actions. It provides scheduling (control) behavior to determine when the user wants to communicate with the model or view.!




More information about the Squeak-dev mailing list