Hi,

I added the remaining missing methods to javax.swing.table.JTableHeader.

2005-10-05  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/table/JTableHeader.java
        (accessibleContext): Removed unneeded field. The protected
        field with the same name should be used instead.
        (JTableHeader): Moved field initialization to new method
        initializeLocalVars().
        (setColumnModel): Add and remove this to the old and new model.
        (columnAdded): New listener method.
        (columnMarginChanged): New listener method.
        (columnMoved): New listener method.
        (columnRemoved): New listener method.
        (columnSelectionChanged): New listener method.
        (resizeAndRepaint): New method.
        (initializeLocalVars): New method.

/Roman
Index: javax/swing/table/JTableHeader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/table/JTableHeader.java,v
retrieving revision 1.12
diff -u -r1.12 JTableHeader.java
--- javax/swing/table/JTableHeader.java	2 Jul 2005 20:32:51 -0000	1.12
+++ javax/swing/table/JTableHeader.java	5 Oct 2005 14:11:43 -0000
@@ -61,9 +61,14 @@
 import javax.swing.JComponent;
 import javax.swing.JTable;
 import javax.swing.UIManager;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.TableColumnModelEvent;
+import javax.swing.event.TableColumnModelListener;
 import javax.swing.plaf.TableHeaderUI;
 
 public class JTableHeader extends JComponent
+  implements TableColumnModelListener, Accessible
 {
   protected class AccessibleJTableHeader extends AccessibleJComponent
   {
@@ -305,11 +310,6 @@
   private static final long serialVersionUID = 5144633983372967710L;
 
   /**
-   * The accessibleContext property.
-   */
-  AccessibleContext accessibleContext;
-
-  /**
    * The columnModel property.
    */
   protected TableColumnModel columnModel;
@@ -373,17 +373,8 @@
    */
   public JTableHeader(TableColumnModel cm)
   {
-    accessibleContext = new AccessibleJTableHeader();
     columnModel = cm == null ? createDefaultColumnModel() : cm; 
-    draggedColumn = null;
-    draggedDistance = 0;
-    opaque = true;
-    reorderingAllowed = true;
-    resizingAllowed = true;
-    resizingColumn = null;
-    table = null;
-    updateTableInRealTime = true;
-    cellRenderer = createDefaultRenderer();
+    initializeLocalVars();
     updateUI();
   }
 
@@ -504,7 +495,9 @@
    */ 
   public void setColumnModel(TableColumnModel c)
   {
+    columnModel.removeColumnModelListener(this);
     columnModel = c;
+    columnModel.addColumnModelListener(this);
   }
 
   /**
@@ -664,5 +657,89 @@
       return columnModel.getColumnIndexAtX(point.x);
     
     return -1;
+  }
+
+  /**
+   * Receives notification when a column is added to the column model.
+   *
+   * @param event the table column model event
+   */
+  public void columnAdded(TableColumnModelEvent event)
+  {
+    // TODO: What else to do here (if anything)?
+    resizeAndRepaint();
+  }
+
+  /**
+   * Receives notification when a column margin changes in the column model.
+   *
+   * @param event the table column model event
+   */
+  public void columnMarginChanged(ChangeEvent event)
+  {
+    // TODO: What else to do here (if anything)?
+    resizeAndRepaint();
+  }
+
+  /**
+   * Receives notification when a column is moved within the column model.
+   *
+   * @param event the table column model event
+   */
+  public void columnMoved(TableColumnModelEvent event)
+  {
+    // TODO: What else to do here (if anything)?
+    resizeAndRepaint();
+  }
+
+  /**
+   * Receives notification when a column is removed from the column model.
+   *
+   * @param event the table column model event
+   */
+  public void columnRemoved(TableColumnModelEvent event)
+  {
+    // TODO: What else to do here (if anything)?
+    resizeAndRepaint();
+  }
+
+  /**
+   * Receives notification when the column selection has changed.
+   *
+   * @param event the table column model event
+   */
+  public void columnSelectionChanged(ListSelectionEvent event)
+  {
+    // TODO: What else to do here (if anything)?
+    resizeAndRepaint();
+  }
+
+  /**
+   * Validates the layout of this table header and repaints it. This is
+   * equivalent to <code>revalidate()</code> followed by
+   * <code>repaint()</code>.
+   */
+  public void resizeAndRepaint()
+  {
+    revalidate();
+    repaint();
+  }
+
+  /**
+   * Initializes the fields and properties of this class with default values.
+   * This is called by the constructors.
+   */
+  protected void initializeLocalVars()
+  {
+    accessibleContext = new AccessibleJTableHeader();
+    draggedColumn = null;
+    draggedDistance = 0;
+    opaque = true;
+    reorderingAllowed = true;
+    resizingAllowed = true;
+    resizingColumn = null;
+    table = null;
+    updateTableInRealTime = true;
+    cellRenderer = createDefaultRenderer();
   }
 }
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to