// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_swing_table_JTableHeader__
#define __javax_swing_table_JTableHeader__

#pragma interface

#include <javax/swing/JComponent.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      class Point;
      class Rectangle;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
      class AccessibleContext;
    }
    namespace swing
    {
      namespace event
      {
        class ListSelectionEvent;
        class ChangeEvent;
        class TableColumnModelEvent;
      }
      namespace plaf
      {
        class TableHeaderUI;
      }
      class JTable;
      namespace table
      {
        class JTableHeader;
        class TableCellRenderer;
        class TableColumn;
        class TableColumnModel;
      }
    }
  }
}

class javax::swing::table::JTableHeader : public ::javax::swing::JComponent
{
public:
  JTableHeader ();
  JTableHeader (::javax::swing::table::TableColumnModel *);
public:  // actually protected
  virtual ::javax::swing::table::TableColumnModel *createDefaultColumnModel ();
public:
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext () { return accessibleContext; }
  virtual ::javax::swing::table::TableColumnModel *getColumnModel () { return columnModel; }
  virtual ::javax::swing::table::TableColumn *getDraggedColumn () { return draggedColumn; }
  virtual jint getDraggedDistance () { return draggedDistance; }
  virtual jboolean getReorderingAllowed () { return reorderingAllowed; }
  virtual jboolean getResizingAllowed () { return resizingAllowed; }
  virtual ::javax::swing::table::TableColumn *getResizingColumn () { return resizingColumn; }
  virtual ::javax::swing::JTable *getTable () { return table; }
  virtual jboolean getUpdateTableInRealTime () { return updateTableInRealTime; }
  virtual jboolean isOpaque () { return opaque; }
  virtual void setColumnModel (::javax::swing::table::TableColumnModel *);
  virtual void setDraggedColumn (::javax::swing::table::TableColumn *);
  virtual void setDraggedDistance (jint);
  virtual void setOpaque (jboolean);
  virtual void setReorderingAllowed (jboolean);
  virtual void setResizingAllowed (jboolean);
  virtual void setResizingColumn (::javax::swing::table::TableColumn *);
  virtual void setTable (::javax::swing::JTable *);
  virtual void setUpdateTableInRealTime (jboolean);
public:  // actually protected
  virtual ::javax::swing::table::TableCellRenderer *createDefaultRenderer ();
public:
  virtual ::javax::swing::table::TableCellRenderer *getDefaultRenderer () { return cellRenderer; }
  virtual void setDefaultRenderer (::javax::swing::table::TableCellRenderer *);
  virtual ::java::awt::Rectangle *getHeaderRect (jint);
public:  // actually protected
  virtual ::java::lang::String *paramString ();
public:
  virtual ::java::lang::String *getUIClassID ();
  virtual ::javax::swing::plaf::TableHeaderUI *getUI ();
  virtual void setUI (::javax::swing::plaf::TableHeaderUI *);
  virtual void updateUI ();
  virtual jint columnAtPoint (::java::awt::Point *);
  virtual void columnAdded (::javax::swing::event::TableColumnModelEvent *);
  virtual void columnMarginChanged (::javax::swing::event::ChangeEvent *);
  virtual void columnMoved (::javax::swing::event::TableColumnModelEvent *);
  virtual void columnRemoved (::javax::swing::event::TableColumnModelEvent *);
  virtual void columnSelectionChanged (::javax::swing::event::ListSelectionEvent *);
  virtual void resizeAndRepaint ();
public:  // actually protected
  virtual void initializeLocalVars ();
private:
  static const jlong serialVersionUID = 5144633983372967710LL;
public:  // actually protected
  ::javax::swing::table::TableColumnModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent )))) columnModel;
  ::javax::swing::table::TableColumn *draggedColumn;
  jint draggedDistance;
public: // actually package-private
  jboolean opaque;
public:  // actually protected
  jboolean reorderingAllowed;
  jboolean resizingAllowed;
  ::javax::swing::table::TableColumn *resizingColumn;
  ::javax::swing::JTable *table;
  jboolean updateTableInRealTime;
public: // actually package-private
  ::javax::swing::table::TableCellRenderer *cellRenderer;

  friend class javax_swing_table_JTableHeader$AccessibleJTableHeader;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_swing_table_JTableHeader__ */
