#ifndef ROOT_TTreeTableInterface
#define ROOT_TTreeTableInterface
#ifndef ROOT_TVirtualTableInterface
#include "TVirtualTableInterface.h"
#endif
class TTree;
class TObjArray;
class TTreeFormula;
class TTreeFormulaManager;
class TSelectorDraw;
class TEntryList;
class TList;
class TTreeTableInterface : public TVirtualTableInterface {
private:
TTree *fTree;
TList *fFormulas;
Long64_t fEntry;
Long64_t fNEntries;
Long64_t fFirstEntry;
TTreeFormulaManager *fManager;
TTreeFormula *fSelect;
TSelectorDraw *fSelector;
TList *fInput;
Bool_t fForceDim;
TEntryList *fEntries;
UInt_t fNRows;
UInt_t fNColumns;
void SetVariablesExpression(const char *varexp);
void SyncFormulas();
void InitEntries();
protected:
public:
TTreeTableInterface(TTree *tree = 0, const char *varexp = 0,
const char *selection = 0, Option_t *option = 0,
Long64_t nentries = 0, Long64_t firstentry = 0);
virtual ~TTreeTableInterface();
virtual Double_t GetValue(UInt_t row, UInt_t column);
virtual const char *GetValueAsString(UInt_t row, UInt_t column);
virtual const char *GetRowHeader(UInt_t row);
virtual const char *GetColumnHeader(UInt_t column);
virtual UInt_t GetNRows();
virtual UInt_t GetNColumns();
virtual TEntryList *GetEntryList() { return fEntries; }
virtual void AddColumn(const char *expression, UInt_t position);
virtual void AddColumn(TTreeFormula *formula, UInt_t position);
virtual void RemoveColumn(UInt_t position);
virtual void SetFormula(TTreeFormula *formula, UInt_t position);
virtual void SetSelection(const char *selection);
virtual void SetEntryList(TEntryList *entrylist = 0);
ClassDef(TTreeTableInterface, 0)
};
#endif