Hi there,

I fixed the DefaultTableCellRenderer to make the accompanied mauve tests
pass. The issues addressed here are:
- getTableCellRendererComponent must call setValue to set the value.
Subclasses may override this to special handle the value there.
- JTextField-typed values must not be handled different than others. This
must be a programming mistake, nobody would want a JTextField as _value_
in a table. Editing of table cells should be left to a TableCellEditor
instance.

2006-01-31  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/table/DefaultTableCellRenderer.java
        (getTableCellRendererComponent): Moved setting of the value into
        setValue(). Removed (bogus) special handling of JTextField values.
        (setValue): Made ?: statement more clear by rewriting it
        with if .. else.

/Roman
Index: javax/swing/table/DefaultTableCellRenderer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/table/DefaultTableCellRenderer.java,v
retrieving revision 1.24
diff -u -r1.24 DefaultTableCellRenderer.java
--- javax/swing/table/DefaultTableCellRenderer.java	15 Jan 2006 17:41:58 -0000	1.24
+++ javax/swing/table/DefaultTableCellRenderer.java	1 Feb 2006 13:57:06 -0000
@@ -141,16 +141,7 @@
                                                  boolean hasFocus,
                                                  int row, int column)
   {
-    if (value != null)
-      {
-        if (value instanceof JTextField)
-          return new JTextField(((JTextField)value).getText());
-        super.setText(value.toString());
-      }
-    else
-      // null is rendered as an empty cell.
-      super.setText("");
-
+    setValue(value);
     setOpaque(true);
 
     if (table == null)
@@ -278,6 +269,10 @@
    */
   protected void setValue(Object value)
   {
-    super.setText((value!=null) ? value.toString() : "");
+    if (value != null)
+      super.setText(value.toString());
+    else
+      // null is rendered as an empty cell.
+      super.setText("");
   }
 }

Reply via email to