[Q] What is the right context for this?

Andreas Raab andreas.raab at gmx.de
Fri Mar 21 19:53:35 UTC 2003


David,

> Any idea how I can straighten this out???

Simplify the whole mess:

 	aMenu := SelectionMenu 
 		labelList: #( 'Evaluate the model' 
 			'Report on all circuits')
 		lines: #( 1 )  "optional"
 		selections: #( 1 2)

 	answer := aMenu startUpWithCaption: 'Pick One'.

	answer = 1 ifTrue:[
		self evaluateModel. 
		NetCircuit reportAllUtilinWorld: thisWorld.
	].
	...

Cheers,
  - Andreas


> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of David Faught
> Sent: Friday, March 21, 2003 8:01 PM
> To: Squeak Mailing List
> Subject: [Q] What is the right context for this?
> 
> 
> I am trying to redo NetModel so that it will work under Jacaranda. 
> Unfortunately there is a small snag.  There is a menu that does global
> things to the model that I can't figure out how to do.
> 
> There are a number of class methods in NetModel that do things for all
> instances of that class in the current world.  I have changed these to
> refer to owner rather than world, and that seems to work for the most
> part.  But there is one menu that is a problem.  Here is a shortened
> version of the method:
> 
> doModelMenu
> 
> 	| aMenu answer thisWorld |
> 	thisWorld := (self owner).	"make a pretty simple 
> assumption about the
> world"
> 	aMenu := SelectionMenu 
> 		labelList: #( 'Evaluate the model' 
> 			'Report on all circuits'
> 			'Label all circuits with externalName'
> 			'Unlabel all circuits'
> 			'Erase the whole network' )
> 		lines: #( 1 )  "optional"
> 		selections: #( 'self evaluateModel. NetCircuit 
> reportAllUtilinWorld:
> thisWorld'
> 			'NetReport new initialize: #listCircuits'
> 			'NetCircuit allBeLabeled: #externalName 
> inWorld: thisWorld'
> 			'NetCircuit allRemoveAllLabelsinWorld: 
> thisWorld'
> 			'self eraseNetworkinWorld: thisWorld' ).
> 	answer := aMenu startUpWithCaption: 'Pick One'.
> 	Utilities evaluate: answer in: self to: nil.
> 
> 
> 
> The "Utilities evaluate:" fails because when the answer string is
> evaluated, it has no clue of the instance variables or methods of the
> object that is responding to this "doModelMenu" method.  I think that
> there are probably other things wrong with the way that this is put
> together, like the way that I am trying to pass "thisWorld" to the
> evaluated phrases.  This all worked fine when I could just assume it
> was in THE World instead of trying to specify what world 
> things are in.
> 
> Any idea how I can straighten this out???
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
> http://platinum.yahoo.com
> 



More information about the Squeak-dev mailing list