On Aug 13, 2011, at 3:57 AM, Martin Erdelen wrote:

> I have then practically copy-pasted the code from the first stages  
> of the
> tutorial into my own simulation, except that:
> -- all "buddy network" related stuff has been omitted;
> -- I am using a toroidal SparseGrid2D field (and  
> SparseGridPortrayal2D), 
>    instead of Continuous2D*

> -- But when 
>    onlyCircleWhenSelected == true,
>    i.e. label and circle only to be displayed when the agent is  
> selected,
>    they are *not* shown.

Right you are.  I tried this out in HeatBugs (which also uses a  
SparseGridPortrayal2D) and changed setupPortrayals as follows:

     public void setupPortrayals()
         {
         bugPortrayal.setField(((HeatBugs)state).buggrid);
		
	SimplePortrayal2D p = new  
sim.portrayal.simple.OvalPortrayal2D(Color.white);
	p = new sim.portrayal.simple.LabelledPortrayal2D(p, "yo");
	((LabelledPortrayal2D)p).setOnlyLabelWhenSelected(true);
	p = new sim.portrayal.simple.CircledPortrayal2D(p);
	((CircledPortrayal2D)p).setOnlyCircleWhenSelected(true);
		
         bugPortrayal.setPortrayalForAll( new MovablePortrayal2D(p));

         heatPortrayal.setField(((HeatBugs)state).valgrid);
         heatPortrayal.setMap(new  
sim.util.gui.SimpleColorMap(0,HeatBugs.MAX_HEAT,Color.black,Color.red));

         display.reset();
	display.repaint();
         }

And it exhibits exactly the behavior you describe.  I'll try to find  
the bug.  (BTW, be sure you're using the SVN repository version of the  
code so as to be in sync with whatever bugfix I find).  BTW, I thought  
this might be an issue of MovablePortrayal2D not passing information  
through (it's on the top of the portrayal chain in the previous  
example.  But it's not.  If you delete it, the problem's still there,  
and if you put it at the BOTTOM of the chain, like the example below,  
MovablePortrayal2D doesn't work either!  :-)

     public void setupPortrayals()
         {
         bugPortrayal.setField(((HeatBugs)state).buggrid);
		
	SimplePortrayal2D p = new MovablePortrayal2D(new  
sim.portrayal.simple.OvalPortrayal2D(Color.white));
	p = new sim.portrayal.simple.LabelledPortrayal2D(p, "yo");
	((LabelledPortrayal2D)p).setOnlyLabelWhenSelected(true);
	p = new sim.portrayal.simple.CircledPortrayal2D(p);
	((CircledPortrayal2D)p).setOnlyCircleWhenSelected(true);
		
         bugPortrayal.setPortrayalForAll( p);

         heatPortrayal.setField(((HeatBugs)state).valgrid);
         heatPortrayal.setMap(new  
sim.util.gui.SimpleColorMap(0,HeatBugs.MAX_HEAT,Color.black,Color.red));

         display.reset();
         display.repaint();
         }

Sean