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

#ifndef __javax_swing_tree_DefaultTreeSelectionModel__
#define __javax_swing_tree_DefaultTreeSelectionModel__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace beans
    {
      class PropertyChangeListener;
    }
  }
  namespace javax
  {
    namespace swing
    {
      class DefaultListSelectionModel;
      namespace tree
      {
        class DefaultTreeSelectionModel;
        class RowMapper;
        class TreePath;
      }
      namespace event
      {
        class TreeSelectionEvent;
        class TreeSelectionListener;
        class EventListenerList;
        class SwingPropertyChangeSupport;
      }
    }
  }
}

class javax::swing::tree::DefaultTreeSelectionModel : public ::java::lang::Object
{
public:
  DefaultTreeSelectionModel ();
  virtual ::java::lang::Object *clone ();
  virtual ::java::lang::String *toString ();
private:
  void writeObject (::java::io::ObjectOutputStream *) { }
  void readObject (::java::io::ObjectInputStream *) { }
public:
  virtual void setRowMapper (::javax::swing::tree::RowMapper *);
  virtual ::javax::swing::tree::RowMapper *getRowMapper () { return rowMapper; }
  virtual void setSelectionMode (jint);
  virtual jint getSelectionMode () { return selectionMode; }
  virtual void setSelectionPath (::javax::swing::tree::TreePath *);
public: // actually package-private
  virtual jint getRow (::javax::swing::tree::TreePath *);
public:
  virtual void setSelectionPaths (JArray< ::javax::swing::tree::TreePath *> *);
  virtual void addSelectionPath (::javax::swing::tree::TreePath *);
  virtual void addSelectionPaths (JArray< ::javax::swing::tree::TreePath *> *);
  virtual void removeSelectionPath (::javax::swing::tree::TreePath *);
  virtual void removeSelectionPaths (JArray< ::javax::swing::tree::TreePath *> *);
  virtual ::javax::swing::tree::TreePath *getSelectionPath ();
  virtual JArray< ::javax::swing::tree::TreePath *> *getSelectionPaths () { return selection; }
  virtual jint getSelectionCount ();
  virtual jboolean isPathSelected (::javax::swing::tree::TreePath *);
  virtual jboolean isSelectionEmpty ();
  virtual void clearSelection ();
  virtual void addTreeSelectionListener (::javax::swing::event::TreeSelectionListener *);
  virtual void removeTreeSelectionListener (::javax::swing::event::TreeSelectionListener *);
  virtual JArray< ::javax::swing::event::TreeSelectionListener *> *getTreeSelectionListeners ();
public:  // actually protected
  virtual void fireValueChanged (::javax::swing::event::TreeSelectionEvent *);
public:
  virtual JArray< ::java::util::EventListener *> *getListeners (::java::lang::Class *);
  virtual jintArray getSelectionRows ();
  virtual jint getMinSelectionRow ();
  virtual jint getMaxSelectionRow ();
  virtual jboolean isRowSelected (jint);
  virtual void resetRowSelection () { }
  virtual jint getLeadSelectionRow () { return leadRow; }
  virtual ::javax::swing::tree::TreePath *getLeadSelectionPath () { return leadPath; }
  virtual void addPropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual void removePropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual JArray< ::java::beans::PropertyChangeListener *> *getPropertyChangeListeners ();
public:  // actually protected
  virtual void insureRowContinuity ();
private:
  void selectOne ();
  ::javax::swing::tree::TreePath *getPath (jint);
public:  // actually protected
  virtual jboolean arePathsContiguous (JArray< ::javax::swing::tree::TreePath *> *);
  virtual jboolean canPathsBeAdded (JArray< ::javax::swing::tree::TreePath *> *);
private:
  jboolean canPathBeAdded (::javax::swing::tree::TreePath *);
public:  // actually protected
  virtual jboolean canPathsBeRemoved (JArray< ::javax::swing::tree::TreePath *> *);
  virtual void notifyPathChange (::java::util::Vector *, ::javax::swing::tree::TreePath *);
  virtual void updateLeadIndex ();
  virtual void insureUniqueness () { }
public: // actually package-private
  static const jlong serialVersionUID = 3288129636638950196LL;
public:
  static ::java::lang::String *SELECTION_MODE_PROPERTY;
public:  // actually protected
  ::javax::swing::event::SwingPropertyChangeSupport * __attribute__((aligned(__alignof__( ::java::lang::Object )))) changeSupport;
  JArray< ::javax::swing::tree::TreePath *> *selection;
  ::javax::swing::event::EventListenerList *listenerList;
  ::javax::swing::tree::RowMapper *rowMapper;
  ::javax::swing::DefaultListSelectionModel *listSelectionModel;
  jint selectionMode;
  ::javax::swing::tree::TreePath *leadPath;
  jint leadIndex;
  jint leadRow;
public:

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

#endif /* __javax_swing_tree_DefaultTreeSelectionModel__ */
