35 fIter = folder->GetListOfFolders()->MakeIterator();
51 return (
dynamic_cast<TFolder *
>(
fCurrent) !=
nullptr) ||
52 (
dynamic_cast<TDirectory *
>(
fCurrent) !=
nullptr) ||
53 (
dynamic_cast<TTree *
>(
fCurrent) !=
nullptr) ||
54 (
dynamic_cast<TCanvas *
>(
fCurrent) !=
nullptr) ||
55 (
dynamic_cast<THStack *
>(
fCurrent) !=
nullptr);
60 TTree *tr =
dynamic_cast<TTree *
>(
fCurrent);
62 TDirectory *dir =
dynamic_cast<TDirectory *
>(
fCurrent);
64 TCanvas *canv =
dynamic_cast<TCanvas *
>(
fCurrent);
66 THStack *hs =
dynamic_cast<THStack *
> (
fCurrent);
71 const char *
name()
override
76 const char *
info()
override
130 slot->
SetPar(
"FolderProxy::RootFolder", foldername);
136 const char *foldername = slot->
GetPar(
"FolderProxy::RootFolder");
146 TFolder *res =
nullptr;
148 if (strcmp(rootfolder,
"//root/") == 0)
149 res = gROOT->GetRootFolder();
151 res =
dynamic_cast<TFolder *
>(gROOT->GetRootFolder()->FindObject(rootfolder));
159 if (!folder)
return nullptr;
161 return std::make_unique<TGo4ObjectAccess>(folder);
163 TFolder *curfold = folder;
164 const char *curname = name;
167 const char *slash = strchr(curname,
'/');
168 UInt_t len = slash ? slash - curname : strlen(curname);
169 TIter iter(curfold->GetListOfFolders());
170 TObject *obj =
nullptr;
171 while ((obj = iter()) !=
nullptr)
172 if ((strlen(obj->GetName()) == len) &&
173 (strncmp(obj->GetName(), curname, len) == 0))
break;
174 if (!obj)
return nullptr;
177 return std::make_unique<TGo4ObjectAccess>(obj);
181 TTree *tr =
dynamic_cast<TTree *
> (obj);
185 TDirectory *dir =
dynamic_cast<TDirectory *
> (obj);
189 TCanvas *canv =
dynamic_cast<TCanvas *
> (obj);
193 THStack *hs =
dynamic_cast<THStack *
> (obj);
197 curfold =
dynamic_cast<TFolder *
>(obj);
static std::unique_ptr< TGo4Access > CreateAccess(TCanvas *canv, const char *name)
static TGo4LevelIter * ProduceIter(TCanvas *canv)
static std::unique_ptr< TGo4Access > CreateAccess(TDirectory *dir, Bool_t readright, const char *name, TGo4Slot *browser_slot=nullptr)
static TGo4LevelIter * ProduceIter(TDirectory *dir, Bool_t readright)
const char * name() override
const char * GetClassName() override
const char * info() override
TGo4LevelIter * subiterator() override
virtual ~TGo4FolderLevelIter()
TGo4FolderLevelIter(TFolder *folder)
Bool_t isfolder() override
void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override
const char * GetContainedClassName() const override
void ReadData(TGo4Slot *slot, TDirectory *dir) override
static TGo4LevelIter * ProduceIter(TFolder *folder)
Int_t GetObjectKind() const override
static TFolder * LocateROOTFolder(const char *rootfolder)
static std::unique_ptr< TGo4Access > CreateAccess(TFolder *folder, const char *name)
virtual ~TGo4FolderProxy()
static TGo4LevelIter * ProduceIter(THStack *hs)
static std::unique_ptr< TGo4Access > CreateAccess(THStack *hs, const char *name)
void SetPar(const char *name, const char *value)
const char * GetPar(const char *name) const
static std::unique_ptr< TGo4Access > CreateAccess(TTree *tree, const char *name)
static TGo4LevelIter * ProduceIter(TTree *tree)