/*******************************************************************************
* Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt
******************************************************************************/
package com.opendoorlogistics.utils.ui.tables;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
public class JTableUtils {
private JTableUtils(){
}
public static void setDisabledCheckboxesGreyedOut(JTable table){
// show disabled checkboxes as disabled
final TableCellRenderer booleanRenderer = table.getDefaultRenderer(Boolean.class);
if(JCheckBox.class.isInstance(booleanRenderer)){
final JCheckBox box = (JCheckBox)booleanRenderer;
TableCellRenderer newRenderer = new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
// prepare by calling the original render's method
booleanRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// set enabled/disabled
boolean enabled = table.getModel().isCellEditable(row, column);
if(enabled!=box.isEnabled()){
box.setEnabled(enabled);
}
return box;
}
};
table.setDefaultRenderer(Boolean.class, newRenderer);
}
}
}