package moviescraper.doctord.view.renderer;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import moviescraper.doctord.model.dataitem.DataItemSource;
public class DataItemSourceRenderer implements ListCellRenderer<DataItemSource> {
private static final String strikeOpen = "<strike>";
private static final String strikeClose = "</strike>";
private static final String emptyString = "";
private static final String enabledItemFontTag = "<font color='green'>";
private static final String disabledItemFontTag = "<font color='red'>";
private static final String fontCloseTag = "</font>";
protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
@Override
public Component getListCellRendererComponent(JList<? extends DataItemSource> list, DataItemSource value,
int index, boolean isSelected, boolean cellHasFocus) {
JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,
isSelected, cellHasFocus);
renderer.setHorizontalTextPosition(JLabel.LEFT);
renderer.setText("<html>" + getConditionalFontOpenTag(value) + getConditionalStrikeOpen(value) +
(index + 1) + ". " + value.toString() + getConditionalStrikeClose(value) + fontCloseTag + "</html>");
renderer.setIcon(value.getProfileIcon());
return renderer;
}
private String getConditionalStrikeOpen(DataItemSource value)
{
if(value.isDisabled())
return strikeOpen;
else return emptyString;
}
private String getConditionalFontOpenTag(DataItemSource value)
{
if(value.isDisabled())
return disabledItemFontTag;
else return enabledItemFontTag;
}
private String getConditionalStrikeClose(DataItemSource value)
{
if(value.isDisabled())
return strikeClose;
else return emptyString;
}
}