package org.limewire.ui.swing.images; import java.io.File; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JList; /** * Manages thumbnails for image files. */ public interface ThumbnailManager { public static final int WIDTH = 116; public static final int HEIGHT = 86; /** * Returns the thumbnail for this file. If this file is not immediately * available, it returns a place holder and lazily loads the image in * the background. Once the image has been loaded, subsequent requests * for the image will return the thumbnail immediately. */ public Icon getThumbnailForFile(File file); /** * Returns the thumbnail for this file. If this file is not immediately * available, it returns a place holder and lazily loads the image in * the background. Once the image has been loaded, subsequent requests * for the image will return the thumbnail immediately. * <p> * Once the thumbnail has been loaded, if the component is still showing, * it will cause a repaint at which time the correct image should replace * the place holder image. * <p> * NOTE: the component must be visible at the time the thumbnail will * be created. If the component is no longer visible, the thumbnail * will not be created. */ public Icon getThumbnailForFile(File file, JComponent callback); /** * Returns the thumbnail for this file. If this file is not immediately * available, it returns a place holder and lazily loads the image in * the background. Once the image has been loaded, subsequent requests * for the image will return the thumbnail immediately. * <p> * Once the thumbnail has been loaded, if the component is still showing, * it will cause a repaint at which time the correct image should replace * the place holder image. * <p> * NOTE: the JList must be visible at the time the thumbnail will * be created. If the JList is no longer visible, the thumbnail * will not be created. Or if the index is no longer visible * within the JList, the thumbnail will not be created. */ public Icon getThumbnailForFile(File file, JList list, int index); /** * Returns true if the thumbnail is available immediately. */ public boolean isThumbnailForFileAvailable(File file); public boolean isErrorIcon(File file); }