package org.limewire.ui.swing.library.table;
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JTable;
import javax.swing.border.Border;
import javax.swing.table.DefaultTableCellRenderer;
import org.jdesktop.application.Resource;
import org.limewire.core.api.library.LocalFileItem;
import org.limewire.inject.LazySingleton;
import org.limewire.ui.swing.player.PlayerMediator;
import org.limewire.ui.swing.util.GuiUtils;
import com.google.inject.Inject;
import com.google.inject.Provider;
@LazySingleton
class IsPlayingRenderer extends DefaultTableCellRenderer {
@Resource Icon playingIcon;
private final Provider<PlayerMediator> playerMediator;
private final Border emptyBorder;
@Inject
public IsPlayingRenderer(Provider<PlayerMediator> playerMediator) {
GuiUtils.assignResources(this);
this.playerMediator = playerMediator;
emptyBorder = BorderFactory.createEmptyBorder(0,3,0,3);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
setText("");
setBorder(emptyBorder);
if(value instanceof LocalFileItem) {
if(playerMediator.get().isPlaying(((LocalFileItem)value).getFile()) || playerMediator.get().isPaused(((LocalFileItem)value).getFile()))
setIcon(playingIcon);
else
setIcon(null);
} else {
setIcon(null);
}
return this;
}
}