package hvqzao.flow.ui;

import java.awt.Component;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.TableCellRenderer;

public class BooleanTableCellRenderer extends JCheckBox implements TableCellRenderer {

    public BooleanTableCellRenderer() {
        super();
        initialize();
    }

    private void initialize() {
        setOpaque(true);
        putClientProperty("JComponent.sizeVariant", "small");
        SwingUtilities.updateComponentTreeUI(this);
        setLayout(new GridBagLayout());
        setMargin(new Insets(0, 0, 0, 0));
        setHorizontalAlignment(JLabel.CENTER);
        setBorderPainted(true);
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        //int modelRow = table.convertRowIndexToModel(row);
        setBackground(ThemeHelper.cellBackground(table.getRowCount(), row, isSelected));
        if (value instanceof Boolean) {
            setSelected((Boolean) value);
        }
        return this;
    }
}