this.observer = observer;
image.setObserver (observer);
  public boolean prepareImage (Image image, int width, int height,			       ImageObserver observer)   {    GtkImage i = (GtkImage) image;    if (i.isLoaded ()) return true;    class PrepareImage extends Thread    {      GtkImage image;      ImageObserver observer;      PrepareImage (GtkImage image, ImageObserver observer)      {	this.image = image;	this.observer = observer;      }            public void run ()      {	// XXX: need to return data to image observer	image.source.startProduction (null);      }    }    new PrepareImage (i, observer).start ();    return false;  }