SWT Jface Eclipse Java

/******************************************************************************
 * All Right Reserved. 
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * 
 * Created on 2004-7-14 7:50:09 by JACK
 * $Id$
 * 
 *****************************************************************************/
import java.io.File;
import org.apache.commons.net.ftp.FTPFile;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Display;
/**
 * File icon provider. A display object must be created before 
 * you can access this method.
 */
public class FileIconUtil {
  static ImageRegistry imageRegistry;
  
  static Image iconFolder;
  static Image iconFile;
  
  static {
    iconFolder = new Image(Display.getCurrent(), "rntsoft.gif");
    iconFile = new Image(Display.getCurrent(), "rntsoft.gif");
  }
  /**
   * Returns an icon representing the specified file.
   * 
   * @param file
   * @return
   */
  public static Image getIcon(File file) {
    if (file.isDirectory())
      return iconFolder;
    int lastDotPos = file.getName().indexOf('.');
    if (lastDotPos == -1)
      return iconFile;
    Image image = getIcon(file.getName().substring(lastDotPos + 1));
    return image == null ? iconFile : image;
  }
  
  /**
   * Returns an icon representing the specified file.
   * 
   * @param file
   * @return
   */
  public static Image getIcon(FTPFile file) {
    if (file.isDirectory())
      return iconFolder;
    int lastDotPos = file.getName().indexOf('.');
    if (lastDotPos == -1)
      return iconFile;
    Image image = getIcon(file.getName().substring(lastDotPos + 1));
    return image == null ? iconFile : image;
  }  
  
  /**
   * Returns the icon for the file type with the specified extension.
   * 
   * @param extension
   * @return
   */
  private static Image getIcon(String extension) {
    if (imageRegistry == null)
      imageRegistry = new ImageRegistry();
    Image image = imageRegistry.get(extension);
    if (image != null)
      return image;
    Program program = Program.findProgram(extension);
    ImageData imageData = (program == null ? null : program.getImageData());
    if (imageData != null) {
      image = new Image(Display.getCurrent(), imageData);
      imageRegistry.put(extension, image);
    } else {
      image = iconFile;
    }
    return image;
  }  
}