From 5387cc8a5af16b2da1f5cb008cf50f8012a4ab85 Mon Sep 17 00:00:00 2001 From: Chrriis Date: Mon, 9 Apr 2012 12:43:03 +0000 Subject: [PATCH] [#1177] Add SQL Console module to jOOQ - boolean editor did not consider null different from false. --- .../java/org/jooq/debug/console/EditorPane.java | 17 +++++++++++++++++ .../org/jooq/debug/console/misc/JTableX.java | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/jOOQ-console/src/main/java/org/jooq/debug/console/EditorPane.java b/jOOQ-console/src/main/java/org/jooq/debug/console/EditorPane.java index a08911ed35..60a31190c9 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/console/EditorPane.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/console/EditorPane.java @@ -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) { diff --git a/jOOQ-console/src/main/java/org/jooq/debug/console/misc/JTableX.java b/jOOQ-console/src/main/java/org/jooq/debug/console/misc/JTableX.java index f1b759b675..a31509847a 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/console/misc/JTableX.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/console/misc/JTableX.java @@ -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;