package com.calipso.reportgenerator.userinterface;
import javax.swing.table.TableCellRenderer;
import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.net.URL;
/**
* HeaderTableRenderer define las propiedades de los componentes que van a ser ubicados en las tablas
*/
public class HeaderTableRenderer extends JPanel implements TableCellRenderer {
private JLabel cellLabel;
private Icon collapsedIcon;
private Icon expandedIcon;
/**
* Crea un objeto HeaderTableRenderer
*/
public HeaderTableRenderer() {
cellLabel = new JLabel();
setLayout(new BorderLayout());
add(cellLabel, BorderLayout.NORTH);
setBackground(new Color(204, 204, 204));
setBorder(new LineBorder(Color.GRAY, 1));
}
/**
* Setea el valor del JLable cellLabel
* @param value
*/
protected void setValue(Object value) {
cellLabel.setText((value == null) ? "" : value.toString());
}
/**
* Retorna el componente a insertar el la tabla
* @param table
* @param value
* @param isCollapsable
* @param isCollapsed
* @return
*/
public Component getCellComponent(JTable table, Object value, boolean isCollapsable, boolean isCollapsed){
cellLabel.setFont(table.getFont());
if (isCollapsable){
cellLabel.setIcon(getIcon(isCollapsed));
}
else {
cellLabel.setIcon(null);
}
setValue(value);
return this;
}
/**
* Retorna el cono de la celda
* @param collapsed
* @return
*/
private Icon getIcon(boolean collapsed) {
if (collapsed){
return getCollapsedIcon();
}
else {
return getExpandedIcon();
}
}
/**
* Retorna el ancho del cono
* @return
*/
public int getIconWidth(){
return getCollapsedIcon().getIconWidth();
}
/**
* Retorna el alto del cono
* @return
*/
public int getIconHeight(){
return getCollapsedIcon().getIconHeight();
}
/**
* Retorna el cono expandedIcon
* @return
*/
private Icon getExpandedIcon() {
if (expandedIcon == null){
ClassLoader loader = this.getClass().getClassLoader();
URL url = loader.getResource("com/calipso/reportgenerator/userinterface/images/collapse.gif");
expandedIcon = new ImageIcon(url);
}
return expandedIcon;
}
/**
* Retorna el cono collapsedIcon
* @return
*/
private Icon getCollapsedIcon() {
if (collapsedIcon == null){
ClassLoader loader = this.getClass().getClassLoader();
URL url = loader.getResource("com/calipso/reportgenerator/userinterface/images/expand.gif");
collapsedIcon = new ImageIcon(url);
}
return collapsedIcon;
}
/**
* Implementacin de la interface TableCellRenderer
* @param table
* @param value
* @param isSelected
* @param hasFocus
* @param row
* @param column
* @return
*/
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
return null;
}
}
|