[#1177] Add SQL Console module to jOOQ - boolean editor did not consider null different from false.

This commit is contained in:
Chrriis 2012-04-09 12:43:03 +00:00
parent 6b5c14a2aa
commit 5387cc8a5a
2 changed files with 18 additions and 1 deletions

View File

@ -117,6 +117,7 @@ import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableRowSorter;
import javax.swing.text.BadLocationException;
@ -660,6 +661,22 @@ public class EditorPane extends JPanel {
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
});
final TableCellRenderer booleanRenderer = table.getDefaultRenderer(Boolean.class);
table.setDefaultRenderer(Boolean.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = null;
if(value == null) {
c = super.getTableCellRendererComponent(table, " ", isSelected, hasFocus, row, column);
} else {
c = booleanRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
if(!isSelected) {
c.setBackground(row %2 == 0? UIManager.getColor("Table.background"): JTableX.getTableAlternateRowBackgroundColor());
}
return c;
}
});
table.setDefaultRenderer(Timestamp.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

View File

@ -64,7 +64,7 @@ public class JTableX extends JTable {
private static final Color EVEN_ROW_COLOR = Color.WHITE;
private static final Color ODD_ROW_COLOR = getTableAlternateRowBackgroundColor();
private static Color getTableAlternateRowBackgroundColor() {
public static Color getTableAlternateRowBackgroundColor() {
Color defaultBackground = UIManager.getDefaults().getColor("Panel.background");
Color c = new Color((defaultBackground.getRed() + 0xFF) / 2, (defaultBackground.getGreen() + 0xFF) / 2, (defaultBackground.getBlue() + 0xFF) / 2);
return c;