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

#ifndef __javax_swing_tree_TreeCellEditor__
#define __javax_swing_tree_TreeCellEditor__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JTree;
      namespace event
      {
          class CellEditorListener;
      }
      namespace tree
      {
          class TreeCellEditor;
      }
    }
  }
}

class javax::swing::tree::TreeCellEditor : public ::java::lang::Object
{

public:
  virtual ::java::awt::Component * getTreeCellEditorComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint) = 0;
  virtual ::java::lang::Object * getCellEditorValue() = 0;
  virtual jboolean isCellEditable(::java::util::EventObject *) = 0;
  virtual jboolean shouldSelectCell(::java::util::EventObject *) = 0;
  virtual jboolean stopCellEditing() = 0;
  virtual void cancelCellEditing() = 0;
  virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *) = 0;
  virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_swing_tree_TreeCellEditor__
