package org.ripple.power.ui.table;
import java.awt.Component;
import java.awt.Font;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import org.ripple.power.txns.AccountFind;
import org.ripple.power.utils.GraphicsUtils;
public class RowColorTableCellRenderer extends JLabel implements
TableCellRenderer {
/**
*
*/
private static final long serialVersionUID = 1L;
private final Font defFont;
private final Font font = GraphicsUtils.getFont(Font.SANS_SERIF, 1, 14);
public RowColorTableCellRenderer() {
super();
setOpaque(true);
defFont = new Font(getFont().getName(), Font.PLAIN, 14);
setFont(defFont);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
boolean flag = false;
if (table instanceof RowColorModel) {
RowColorModel model = (RowColorModel) table;
setBackground(model.getBackground(row, isSelected, table));
setForeground(model.getForeground(row, isSelected, table));
if (value instanceof String) {
String address = (String) value;
if (AccountFind.isRippleAddress(address)) {
setFont(font);
} else {
setFont(defFont);
}
flag = true;
}
}
if (!flag) {
if (value instanceof Icon) {
setIcon((Icon) value);
} else {
setIcon(null);
}
}
setText(value == null ? "" : value.toString());
return this;
}
}