package com.ibm.nmon.gui.table;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.Component;
import javax.swing.JTable;
import com.ibm.nmon.gui.Styles;
/**
* Renders double data with thousands separator and 3 decimal points. Renders NaN as "N/A".
*/
public final class DoubleCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = -8018894006090877953L;
public DoubleCellRenderer() {
super();
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
super.getTableCellRendererComponent(table, null, isSelected, hasFocus, row, column);
setHorizontalAlignment(TRAILING);
formatDouble(value);
return this;
}
private void formatDouble(Object value) {
double d = (Double) value;
if (Double.isNaN(d)) {
setValue("N/A");
}
else {
setValue(Styles.NUMBER_FORMAT.format(d));
}
}
}