/***********************************************************************
This file is part of KEEL-software, the Data Mining tool for regression,
classification, clustering, pattern mining and so on.
Copyright (C) 2004-2010
F. Herrera (herrera@decsai.ugr.es)
L. S�nchez (luciano@uniovi.es)
J. Alcal�-Fdez (jalcala@decsai.ugr.es)
S. Garc�a (sglopez@ujaen.es)
A. Fern�ndez (alberto.fernandez@ujaen.es)
J. Luengo (julianlm@decsai.ugr.es)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/
**********************************************************************/
/**
* File: statTableRenderer.java.
*
* Specific renderer for the data table
*
* @author Written by Joaquin Derrac (University of Granada) 29/04/2010
* @version 1.0
* @since JDK1.5
*/
package keel.GraphInterKeel.statistical;
import java.awt.Component;
import java.text.DecimalFormat;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
class statTableRenderer extends DefaultTableCellRenderer {
DecimalFormat formatter;
/**
* Builder
*/
public statTableRenderer() {
super();
formatter = (DecimalFormat)DecimalFormat.getNumberInstance();
formatter.setMinimumFractionDigits(1);
formatter.setMaximumFractionDigits(10);
formatter.setGroupingUsed(false);
}
/**
* Formats a value on the cell
*
* @param value to set
*/
public void setValue(Object value) {
setText(formatter.format(value));
}
/**
* Gets the cell renderer component used
*
* @param table Table to modify
* @param value Value to represent
* @param isSelected Tests if the cell is currently selected
* @param hasFocus Tests if the cell has the focus
* @param row Row selected
* @param col Column selected
*
* @return Cell renderer component
*/
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,int row, int col) {
String _formattedValue;
if(col>0){
Double _value = (Double)value;
if (value == null) {
_formattedValue = "0.0";
} else {
_formattedValue = formatter.format(_value);
}
}
else {
_formattedValue=(String)value;
}
JLabel testLabel = new JLabel(_formattedValue, SwingConstants.RIGHT);
if (isSelected) {
testLabel.setBackground(table.getSelectionBackground());
testLabel.setOpaque(true);
testLabel.setForeground(table.getSelectionForeground());
}
if (hasFocus) {
testLabel.setForeground(table.getSelectionBackground());
testLabel.setBackground(table.getSelectionForeground());
testLabel.setOpaque(true);
}
return testLabel;
}
}