package automenta.vivisect.swing.property.sheet.renderer;
import java.awt.Component;
import java.io.Serializable;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import automenta.vivisect.swing.property.sheet.I18N;
/**
* Boolean value table cell renderer.
*
* @author Bartosz Firyn (SarXos)
*/
public class BooleanRenderer extends JPanel implements TableCellRenderer, Serializable {
private static final long serialVersionUID = 8848514762273327844L;
private JCheckBox checkbox = null;
public BooleanRenderer() {
checkbox = new JCheckBox();
checkbox.setBounds(-3, 0, 200, 15);
checkbox.setText("");
setBorder(null);
setLayout(null);
add(checkbox);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JTable.DropLocation dl = table.getDropLocation();
if (dl != null && !dl.isInsertRow() && !dl.isInsertColumn() && dl.getRow() == row && dl.getColumn() == column) {
isSelected = true;
}
if (isSelected) {
setBackground(table.getSelectionBackground());
setForeground(table.getSelectionForeground());
checkbox.setBackground(table.getSelectionBackground());
checkbox.setForeground(table.getSelectionForeground());
} else {
setBackground(table.getBackground());
setForeground(table.getForeground());
checkbox.setBackground(table.getBackground());
checkbox.setForeground(table.getForeground());
}
boolean selected = Boolean.TRUE.equals(value);
checkbox.setSelected(selected);
checkbox.setText(selected ? I18N.TRUE : I18N.FALSE);
return this;
}
}