package javacodebook.gui.tablerenderer;

import java.awt.*;

import javax.swing.*;
import javax.swing.table.*;

/**
 * @author benjamin_rusch
 *
 * Dieser Renderer macht die Texte in der entsprechenden Spalte rot,
 * und bettet in der dritten Zeile ein Image ein.
 */
public class ColoredCellRenderer implements TableCellRenderer {

	/**
	 * Methode wird von JTable aufgerufen, um die Art der
	 * Dastellung der Zelle zu erfragen.
	 */
	public Component getTableCellRendererComponent(JTable table, Object value,
				boolean isSelected, boolean hasFocus, int row, int column) {
		JLabel label = new JLabel();

		// Wenn selktiert ändert sich die Hintergrundfarbe mit
		if(isSelected && row!=2) {
			label.setText(value.toString());
			label.setForeground(Color.RED);
			label.setOpaque(true);
			label.setBackground(Color.LIGHT_GRAY);
		}
		// In Reihe drei wird ein Icon eingesetzt
		// (die Reihen fangen bei 0 zu zählen an)
		else if(row==2) {
			label.setIcon(new ImageIcon(getClass().getClassLoader().
        			getSystemResource("javacodebook/gui/tablerenderer"
        			+"/berlin.jpg")));
		}
		// sonst wird das Label einfach nur rot beschriftet
		else {
			label.setText(value.toString());
			label.setForeground(Color.RED);
		}
		return label;
	}

}
