HeaderTableRenderer.java :  » Report » jmagallanes-1.0 » com » calipso » reportgenerator » userinterface » Java Open Source

Java Open Source » Report » jmagallanes 1.0 
jmagallanes 1.0 » com » calipso » reportgenerator » userinterface » HeaderTableRenderer.java
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;
  }


}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.