if (imageHandle == null) imageCache.put(mergedImageData, imageHandle = new ImageHandle(new Image(display, mergedImageData)));
if (imageHandle == null) { imageHandle = new ImageHandle(new Image(display, mergedImageData)); imageCache.put(mergedImageData, imageHandle); }
  private ImageHandle getStateImage(Color background, String state) {    ImageHandle imageHandle;    ImageData stateImageData = basicSkinable.getImageData(state);    if (stateImageData != null) {      ImageData mergedImageData = imageMerger.merge(background, stateImageData);  //    mergedImageData.transparentPixel = mergedImageData.palette.getPixel(background.getRGB());      imageHandle = (ImageHandle) imageCache.get(mergedImageData);      if (imageHandle == null)        imageCache.put(mergedImageData, imageHandle = new ImageHandle(new Image(display, mergedImageData)));    }    else {      /* We need to generate an image for the text */      imageHandle = (ImageHandle) imageCache.get(state);      if (imageHandle == null) {        GC gc = new GC(table);              Point size = gc.stringExtent(state);        gc.dispose();        Image image = new Image(display, size.x, size.y);        gc = new GC(image);        gc.drawText(state, 0, 0, true);        gc.dispose();        imageCache.put(state, imageHandle = new ImageHandle(image));      }    }    return imageHandle;  }