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

#ifndef __javax_swing_JTable__
#define __javax_swing_JTable__

#pragma interface

#include <javax/swing/JComponent.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
      class AccessibleContext;
    }
    namespace swing
    {
      namespace plaf
      {
        class TableUI;
      }
      namespace event
      {
        class TableModelEvent;
        class ListSelectionEvent;
        class ChangeEvent;
        class TableColumnModelEvent;
      }
      class JScrollPane;
      class JTable;
      class JTable$TableColumnPropertyChangeHandler;
      class Timer;
      class ListSelectionModel;
      namespace table
      {
        class TableCellRenderer;
        class TableColumn;
        class JTableHeader;
        class TableCellEditor;
        class TableColumnModel;
        class TableModel;
      }
    }
  }
  namespace java
  {
    namespace awt
    {
      class Rectangle;
      class Point;
      class Dimension;
      class Color;
      class Component;
    }
  }
}

class javax::swing::JTable : public ::javax::swing::JComponent
{
public:
  JTable ();
  JTable (jint, jint);
  JTable (JArray<JArray< ::java::lang::Object *> *> *, JArray< ::java::lang::Object *> *);
  JTable (::javax::swing::table::TableModel *);
  JTable (::javax::swing::table::TableModel *, ::javax::swing::table::TableColumnModel *);
  JTable (::javax::swing::table::TableModel *, ::javax::swing::table::TableColumnModel *, ::javax::swing::ListSelectionModel *);
public:  // actually protected
  virtual void initializeLocalVars ();
public:
  JTable (::java::util::Vector *, ::java::util::Vector *);
  virtual void addColumn (::javax::swing::table::TableColumn *);
public:  // actually protected
  virtual void createDefaultEditors () { }
  virtual void createDefaultRenderers ();
public:
  static ::javax::swing::JScrollPane *createScrollPaneForTable (::javax::swing::JTable *);
public:  // actually protected
  virtual ::javax::swing::table::TableColumnModel *createDefaultColumnModel ();
  virtual ::javax::swing::table::TableModel *createDefaultDataModel ();
  virtual ::javax::swing::ListSelectionModel *createDefaultSelectionModel ();
  virtual ::javax::swing::table::JTableHeader *createDefaultTableHeader ();
public:
  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 editingCanceled (::javax::swing::event::ChangeEvent *);
  virtual void editingStopped (::javax::swing::event::ChangeEvent *);
  virtual void tableChanged (::javax::swing::event::TableModelEvent *);
  virtual void valueChanged (::javax::swing::event::ListSelectionEvent *);
  virtual jint columnAtPoint (::java::awt::Point *);
  virtual jint rowAtPoint (::java::awt::Point *);
  virtual ::java::awt::Rectangle *getCellRect (jint, jint, jboolean);
  virtual void clearSelection ();
  virtual jint getSelectedRow ();
  virtual ::javax::swing::ListSelectionModel *getSelectionModel () { return selectionModel; }
  virtual jint getScrollableBlockIncrement (::java::awt::Rectangle *, jint, jint);
  virtual jboolean getScrollableTracksViewportHeight ();
  virtual jboolean getScrollableTracksViewportWidth ();
  virtual jint getScrollableUnitIncrement (::java::awt::Rectangle *, jint, jint);
  virtual ::javax::swing::table::TableCellEditor *getCellEditor (jint, jint);
  virtual ::javax::swing::table::TableCellEditor *getDefaultEditor (::java::lang::Class *);
  virtual ::javax::swing::table::TableCellRenderer *getCellRenderer (jint, jint);
  virtual void setDefaultRenderer (::java::lang::Class *, ::javax::swing::table::TableCellRenderer *);
  virtual ::javax::swing::table::TableCellRenderer *getDefaultRenderer (::java::lang::Class *);
  virtual jint convertColumnIndexToModel (jint);
  virtual jint convertColumnIndexToView (jint);
  virtual ::java::awt::Component *prepareRenderer (::javax::swing::table::TableCellRenderer *, jint, jint);
  virtual jboolean getAutoCreateColumnsFromModel () { return autoCreateColumnsFromModel; }
  virtual jint getAutoResizeMode () { return autoResizeMode; }
  virtual jint getRowHeight () { return rowHeight; }
  virtual jint getRowHeight (jint) { return rowHeight; }
  virtual jint getRowMargin () { return rowMargin; }
  virtual jboolean getRowSelectionAllowed () { return rowSelectionAllowed; }
  virtual jboolean getCellSelectionEnabled ();
  virtual ::javax::swing::table::TableModel *getModel () { return dataModel; }
  virtual jint getColumnCount ();
  virtual jint getRowCount ();
  virtual ::javax::swing::table::TableColumnModel *getColumnModel () { return columnModel; }
  virtual jint getSelectedColumn ();
private:
  static jint countSelections (::javax::swing::ListSelectionModel *);
  static jintArray getSelections (::javax::swing::ListSelectionModel *);
public:
  virtual jint getSelectedColumnCount ();
  virtual jintArray getSelectedColumns ();
  virtual jboolean getColumnSelectionAllowed ();
  virtual jint getSelectedRowCount ();
  virtual jintArray getSelectedRows ();
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext () { return accessibleContext; }
  virtual ::javax::swing::table::TableCellEditor *getCellEditor () { return cellEditor; }
  virtual jboolean getDragEnabled () { return dragEnabled; }
  virtual ::java::awt::Color *getGridColor () { return gridColor; }
  virtual ::java::awt::Dimension *getIntercellSpacing ();
  virtual ::java::awt::Dimension *getPreferredScrollableViewportSize () { return preferredViewportSize; }
  virtual ::java::awt::Color *getSelectionBackground () { return selectionBackground; }
  virtual ::java::awt::Color *getSelectionForeground () { return selectionForeground; }
  virtual jboolean getShowHorizontalLines () { return showHorizontalLines; }
  virtual jboolean getShowVerticalLines () { return showVerticalLines; }
  virtual ::javax::swing::table::JTableHeader *getTableHeader () { return tableHeader; }
  virtual void removeColumn (::javax::swing::table::TableColumn *);
  virtual void moveColumn (jint, jint);
  virtual void setAutoCreateColumnsFromModel (jboolean);
  virtual void setAutoResizeMode (jint);
  virtual void setRowHeight (jint);
  virtual void setRowHeight (jint, jint);
  virtual void setRowMargin (jint);
  virtual void setRowSelectionAllowed (jboolean);
  virtual void setCellSelectionEnabled (jboolean);
  virtual void setModel (::javax::swing::table::TableModel *);
  virtual void setColumnModel (::javax::swing::table::TableColumnModel *);
  virtual void setColumnSelectionAllowed (jboolean);
  virtual void setSelectionModel (::javax::swing::ListSelectionModel *);
  virtual void setSelectionMode (jint);
  virtual void setCellEditor (::javax::swing::table::TableCellEditor *);
  virtual void setDragEnabled (jboolean);
  virtual void setGridColor (::java::awt::Color *);
  virtual void setIntercellSpacing (::java::awt::Dimension *);
  virtual void setPreferredScrollableViewportSize (::java::awt::Dimension *);
  virtual void setSelectionBackground (::java::awt::Color *);
  virtual void setSelectionForeground (::java::awt::Color *);
  virtual void setShowGrid (jboolean);
  virtual void setShowHorizontalLines (jboolean);
  virtual void setShowVerticalLines (jboolean);
  virtual void setTableHeader (::javax::swing::table::JTableHeader *);
public:  // actually protected
  virtual void configureEnclosingScrollPane ();
  virtual void unconfigureEnclosingScrollPane ();
public:
  virtual void addNotify ();
  virtual void removeNotify ();
private:
  void distributeSpill (JArray< ::javax::swing::table::TableColumn *> *, jint);
public:
  virtual void doLayout ();
  virtual void sizeColumnsToFit (jboolean);
  virtual void sizeColumnsToFit (jint);
  virtual ::java::lang::String *getUIClassID ();
  virtual ::javax::swing::plaf::TableUI *getUI ();
  virtual void setUI (::javax::swing::plaf::TableUI *);
  virtual void updateUI ();
  virtual ::java::lang::Class *getColumnClass (jint);
  virtual ::java::lang::String *getColumnName (jint);
  virtual jint getEditingColumn () { return editingColumn; }
  virtual void setEditingColumn (jint);
  virtual jint getEditingRow () { return editingRow; }
  virtual void setEditingRow (jint);
  virtual ::java::awt::Component *getEditorComponent () { return editorComp; }
  virtual jboolean isEditing ();
  virtual void setDefaultEditor (::java::lang::Class *, ::javax::swing::table::TableCellEditor *);
  virtual void addColumnSelectionInterval (jint, jint);
  virtual void addRowSelectionInterval (jint, jint);
  virtual void setColumnSelectionInterval (jint, jint);
  virtual void setRowSelectionInterval (jint, jint);
  virtual void removeColumnSelectionInterval (jint, jint);
  virtual void removeRowSelectionInterval (jint, jint);
  virtual jboolean isColumnSelected (jint);
  virtual jboolean isRowSelected (jint);
  virtual jboolean isCellSelected (jint, jint);
  virtual void selectAll ();
  virtual ::java::lang::Object *getValueAt (jint, jint);
  virtual void setValueAt (::java::lang::Object *, jint, jint);
  virtual ::javax::swing::table::TableColumn *getColumn (::java::lang::Object *);
  virtual jboolean isCellEditable (jint, jint);
  virtual void createDefaultColumnsFromModel ();
  virtual void changeSelection (jint, jint, jboolean, jboolean);
  virtual jboolean editCellAt (jint, jint);
  virtual jboolean editCellAt (jint, jint, ::java::util::EventObject *);
  virtual void removeEditor ();
  virtual ::java::awt::Component *prepareEditor (::javax::swing::table::TableCellEditor *, jint, jint);
public:  // actually protected
  virtual void resizeAndRepaint ();
private:
  static const jlong serialVersionUID = 3876025080382781659LL;
public:
  static const jint AUTO_RESIZE_OFF = 0L;
  static const jint AUTO_RESIZE_NEXT_COLUMN = 1L;
  static const jint AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2L;
  static const jint AUTO_RESIZE_ALL_COLUMNS = 4L;
  static const jint AUTO_RESIZE_LAST_COLUMN = 3L;
public:  // actually protected
  ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::javax::swing::JComponent )))) defaultEditorsByColumnClass;
  ::java::util::Hashtable *defaultRenderersByColumnClass;
  jint editingColumn;
  jint editingRow;
  ::java::awt::Component *editorComp;
  jboolean autoCreateColumnsFromModel;
  jint autoResizeMode;
  jint rowHeight;
  jint rowMargin;
  jboolean rowSelectionAllowed;
  jboolean cellSelectionEnabled;
  ::javax::swing::table::TableModel *dataModel;
  ::javax::swing::table::TableColumnModel *columnModel;
  ::javax::swing::ListSelectionModel *selectionModel;
  ::javax::swing::table::TableCellEditor *cellEditor;
private:
  jboolean dragEnabled;
public:  // actually protected
  ::java::awt::Color *gridColor;
  ::java::awt::Dimension *preferredViewportSize;
  ::java::awt::Color *selectionBackground;
private:
  static ::java::lang::String *SELECTION_BACKGROUND_CHANGED_PROPERTY;
public:  // actually protected
  ::java::awt::Color *selectionForeground;
private:
  static ::java::lang::String *SELECTION_FOREGROUND_CHANGED_PROPERTY;
public:  // actually protected
  jboolean showHorizontalLines;
  jboolean showVerticalLines;
  ::javax::swing::table::JTableHeader *tableHeader;
public: // actually package-private
  jint rowBeingEdited;
  jint columnBeingEdited;
  ::javax::swing::Timer *editorTimer;
  ::java::lang::Object *oldCellValue;
  ::javax::swing::JTable$TableColumnPropertyChangeHandler *tableColumnPropertyChangeHandler;
private:
  static jboolean $assertionsDisabled;

  friend class javax_swing_JTable$EditorUpdateTimer;
  friend class javax_swing_JTable$IconCellRenderer;
  friend class javax_swing_JTable$NumberCellRenderer;
  friend class javax_swing_JTable$FloatCellRenderer;
  friend class javax_swing_JTable$DoubleCellRenderer;
  friend class javax_swing_JTable$DateCellRenderer;
  friend class javax_swing_JTable$BooleanCellRenderer;
  friend class javax_swing_JTable$TableColumnPropertyChangeHandler;
  friend class javax_swing_JTable$AccessibleJTable;
public:

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

#endif /* __javax_swing_JTable__ */
