package org.limewire.ui.swing.util;
import java.io.File;
import javax.swing.Icon;
import org.limewire.core.api.Category;
import org.limewire.core.api.file.CategoryManager;
import org.limewire.util.FileUtils;
import com.google.inject.Inject;
/**
* A FileIconController that uses default icons.
*/
public class BasicFileIconController extends NonBlockFileIconController {
private final CategoryIconManager categoryIconManager;
private final CategoryManager categoryManager;
@Inject
public BasicFileIconController(CategoryIconManager categoryIconManager, CategoryManager categoryManager) {
this.categoryIconManager = categoryIconManager;
this.categoryManager = categoryManager;
}
/** Returns the icon associated with the extension of the file. */
public Icon getIconForFile(File f) {
if(f == null)
return null;
String extension = FileUtils.getFileExtension(f);
return getIconForExtension(extension);
}
/** Returns the icon associated with the extension. */
public Icon getIconForExtension(String ext) {
Category category = null;
if (ext != null) {
category = categoryManager.getCategoryForExtension(ext);
}
return this.categoryIconManager.getIcon(category);
}
/** Icons are always available immediately. */
public boolean isIconForFileAvailable(File f) {
return true;
}
}