/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package feuille.karaoke.renderer;
import java.awt.Color;
import java.awt.Component;
import java.awt.SystemColor;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import feuille.scripting.Snippet;
import feuille.scripting.SnippetElement;
/**
*
* @author The Wingate 2940
*/
public class snippetTableRenderer extends JLabel implements TableCellRenderer {
public snippetTableRenderer(){
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (value instanceof URL){
URL url = (URL)value;
setText("");
setIcon(new ImageIcon(url));
}
if(value instanceof String){
String s = (String)value;
setText(s);
setIcon(null);
}
if(value instanceof Snippet){
Snippet sni = (Snippet)value;
setText(sni.toString());
setIcon(null);
}
if(value instanceof SnippetElement){
SnippetElement se = (SnippetElement)value;
setText(se.toString());
setIcon(null);
}
setForeground(isSelected==true? Color.white : Color.black);
if(isEven(row)==true){
setBackground(isSelected==true? SystemColor.activeCaption : SystemColor.controlHighlight);
if(System.getProperty("os.name").equalsIgnoreCase("Mac OS X")){
Color cActive = new Color(56,117,215);
Color cHighLight = new Color(208,208,208);
setBackground(isSelected==true? cActive : cHighLight);
}
}else{
setBackground(isSelected==true? SystemColor.activeCaption : Color.white);
if(System.getProperty("os.name").equalsIgnoreCase("Mac OS X")){
Color cActive = new Color(56,117,215);
setBackground(isSelected==true? cActive : Color.white);
}
}
return this;
}
private boolean isEven(int number){
String s = Integer.toString(number);
if(s.endsWith("1")){
return false;
}else if(s.endsWith("3")){
return false;
}else if(s.endsWith("5")){
return false;
}else if(s.endsWith("7")){
return false;
}else if(s.endsWith("9")){
return false;
}else{
return true;
}
}
}