2 #include <TGComboBox.h>
5 #include <TGTextEntry.h>
9 #include <TGFileDialog.h>
11 #include "AliEveUtil.h"
12 #include "AliEveFileDialog.h"
14 ClassImp(AliEveFileDialog)
16 AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliEveFileDialogMode mode)
17 : TGTransientFrame(p, main, 100,50, kVerticalFrame),
19 fAdvancedOptsButton(0),
20 fAdvancedOptsFrame(0),
21 fESDfriendFilesFrame(0),
23 fAODfriendFilesFrame(0),
27 fDialogButtonsFrame(0),
29 fPathEntryESDfriend(0),
31 fPathEntryAODfriend(0),
38 SetCleanup(kDeepCleanup);
40 /************************
41 *** Local Files Frame ***
42 *************************/
44 fESDFilesFrame = new TGHorizontalFrame(this, 100, 100);
45 TGLabel* esdLabel = new TGLabel(fESDFilesFrame, "ESD File:");
46 esdLabel->Resize(110, esdLabel->GetDefaultHeight());
47 esdLabel->SetMargins(0,0,0,0);
49 fPathEntryESD= new TGTextEntry(fESDFilesFrame);
50 fPathEntryESD->Resize(250, fPathEntryESD->GetDefaultHeight());
52 TGTextButton* browseButtonESD = new TGTextButton(fESDFilesFrame, "Browse...");
53 browseButtonESD->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseESDFile()");
55 fESDFilesFrame->AddFrame(esdLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
56 fESDFilesFrame->AddFrame(fPathEntryESD, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
57 fESDFilesFrame->AddFrame(browseButtonESD, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
59 AddFrame(fESDFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
61 //Advanced Options Button
62 fAdvancedOptsButton = new TGCheckButton(this, "Advanced Options");
63 fAdvancedOptsButton->Connect("Toggled(Bool_t)", "AliEveFileDialog", this, "showAdvancedOpts(Bool_t)");
65 AddFrame(fAdvancedOptsButton,new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
67 //Advanced Options Frame
69 fAdvancedOptsFrame = new TGGroupFrame(this, "Advanced Options");
71 fESDfriendFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
72 TGLabel* esdFriendLabel = new TGLabel(fESDfriendFilesFrame, "ESDfriend File:");
73 esdFriendLabel->Resize(110, esdFriendLabel->GetDefaultHeight());
74 esdFriendLabel->SetMargins(0,0,0,0);
76 fPathEntryESDfriend= new TGTextEntry(fESDfriendFilesFrame);
77 fPathEntryESDfriend->Resize(250, fPathEntryESDfriend->GetDefaultHeight());
79 TGTextButton* browseButtonESDfriend = new TGTextButton(fESDfriendFilesFrame, "Browse...");
80 browseButtonESDfriend->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseESDfriendFile()");
82 fESDfriendFilesFrame->AddFrame(esdFriendLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
83 fESDfriendFilesFrame->AddFrame(fPathEntryESDfriend, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
84 fESDfriendFilesFrame->AddFrame(browseButtonESDfriend, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
86 fAdvancedOptsFrame->AddFrame(fESDfriendFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
89 fAODFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
90 TGLabel* aodLabel = new TGLabel(fAODFilesFrame, "AOD File:");
91 aodLabel->Resize(110, aodLabel->GetDefaultHeight());
93 fPathEntryAOD = new TGTextEntry(fAODFilesFrame);
94 fPathEntryAOD->Resize(250, fPathEntryAOD->GetDefaultHeight());
96 TGTextButton* browseButtonAOD = new TGTextButton(fAODFilesFrame, "Browse...");
97 browseButtonAOD->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseAODFile()");
99 fAODFilesFrame->AddFrame(aodLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
100 fAODFilesFrame->AddFrame(fPathEntryAOD, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
101 fAODFilesFrame->AddFrame(browseButtonAOD, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
103 fAdvancedOptsFrame->AddFrame(fAODFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
106 fAODfriendFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
107 TGLabel* aodFriendLabel = new TGLabel(fAODfriendFilesFrame, "AODfriend File:");
108 aodFriendLabel->Resize(110, aodFriendLabel->GetDefaultHeight());
110 fPathEntryAODfriend = new TGTextEntry(fAODfriendFilesFrame);
111 fPathEntryAODfriend->Resize(250, fPathEntryAODfriend->GetDefaultHeight());
113 TGTextButton* browseButtonAODfriend = new TGTextButton(fAODfriendFilesFrame, "Browse...");
114 browseButtonAODfriend->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseAODfriendFile()");
116 fAODfriendFilesFrame->AddFrame(aodFriendLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
117 fAODfriendFilesFrame->AddFrame(fPathEntryAODfriend, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
118 fAODfriendFilesFrame->AddFrame(browseButtonAODfriend, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
120 fAdvancedOptsFrame->AddFrame(fAODfriendFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
123 fRawFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
124 TGLabel* rawLabel = new TGLabel(fRawFilesFrame, "Raw File:");
125 rawLabel->Resize(110, rawLabel->GetDefaultHeight());
127 fPathEntryRawFile = new TGTextEntry(fRawFilesFrame);
128 fPathEntryRawFile->Resize(250, fPathEntryRawFile->GetDefaultHeight());
130 TGTextButton* browseButtonRawFile = new TGTextButton(fRawFilesFrame, "Browse...");
131 browseButtonRawFile->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseRawFile()");
133 fRawFilesFrame->AddFrame(rawLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
134 fRawFilesFrame->AddFrame(fPathEntryRawFile, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
135 fRawFilesFrame->AddFrame(browseButtonRawFile, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
137 fAdvancedOptsFrame->AddFrame(fRawFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
139 AddFrame(fAdvancedOptsFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 3, 3, 3, 3) );
144 fUrlFrame = new TGHorizontalFrame(this, 100, 100);
145 TGLabel* urlLabel = new TGLabel(fUrlFrame, "Url:");
146 urlLabel->Resize(110, urlLabel->GetDefaultHeight());
148 fPathEntryUrl= new TGTextEntry(fUrlFrame, "alien:///alice/");
149 fPathEntryUrl->Resize(250, fPathEntryUrl->GetDefaultHeight());
151 fUrlFrame->AddFrame(urlLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY , 3, 3, 3, 3));
152 fUrlFrame->AddFrame(fPathEntryUrl, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
154 AddFrame(fUrlFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
159 fCDBFrame = new TGHorizontalFrame(this, 100, 100);
160 TGLabel *cdbLabel = new TGLabel(fCDBFrame, "CDB Storage:");
161 fCDBPathCB = new TGComboBox(fCDBFrame);
162 fCDBPathCB->SetEditable(kFALSE);
164 fCDBPathCB->AddEntry("local", AliEveUtil::CDB_LOCAL);
165 fCDBPathCB->AddEntry("raw", AliEveUtil::CDB_RAW);
166 fCDBPathCB->AddEntry("mcideal", AliEveUtil::CDB_MCIDEAL);
167 fCDBPathCB->AddEntry("mcresidual", AliEveUtil::CDB_MCRESIDUAL);
168 fCDBPathCB->AddEntry("mcfull", AliEveUtil::CDB_MCFULL);
170 fCDBPathCB->Resize(100, fPathEntryESD->GetDefaultHeight());
171 fCDBPathCB->Select(0, kTRUE);
173 fCDBFrame->AddFrame(cdbLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3) );
174 fCDBFrame->AddFrame(fCDBPathCB, new TGLayoutHints(kLHintsNormal | kLHintsCenterY, 3, 3, 3, 3) );
176 AddFrame(fCDBFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3) );
178 /***************************
179 *** Dialog Buttons Frame ***
180 ****************************/
181 fDialogButtonsFrame = new TGHorizontalFrame(this, 100, 100);
183 TGTextButton* okButton = new TGTextButton(fDialogButtonsFrame, "OK");
184 okButton->Associate(this);
185 okButton->Resize(50, okButton->GetDefaultHeight());
186 okButton->Connect("Clicked()", "AliEveFileDialog", this, "onAccept()");
188 TGTextButton* cancelButton = new TGTextButton(fDialogButtonsFrame, "Cancel");
189 okButton->Associate(this);
190 cancelButton->Connect("Clicked()", "AliEveFileDialog", this, "onReject()");
191 cancelButton->Resize(50, cancelButton->GetDefaultHeight());
193 fDialogButtonsFrame->AddFrame(new TGHorizontal3DLine, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
194 fDialogButtonsFrame->AddFrame(okButton, new TGLayoutHints(kLHintsExpandX | kLHintsCenterY, 3, 3, 3, 3));
195 fDialogButtonsFrame->AddFrame(cancelButton,new TGLayoutHints(kLHintsExpandX | kLHintsCenterY, 3, 3, 3, 3));
197 AddFrame(fDialogButtonsFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX , 3, 3, 3, 3) );
201 TGDimension size = GetDefaultSize();
204 SetWindowName("Open File...");
211 AliEveFileDialog::~AliEveFileDialog()
216 const TString AliEveFileDialog::GetPathESD() const
218 return TString(fPathEntryESD->GetText());
221 const TString AliEveFileDialog::GetPathESDfriend() const
223 return TString(fPathEntryESDfriend->GetText());
226 const TString AliEveFileDialog::GetPathAOD() const
228 return TString(fPathEntryAOD->GetText());
231 const TString AliEveFileDialog::GetPathAODfriend() const
233 return TString(fPathEntryAODfriend->GetText());
236 const TString AliEveFileDialog::GetPathRaw() const
238 return TString(fPathEntryRawFile->GetText());
241 const TString AliEveFileDialog::GetUrl() const
243 return TString(fPathEntryUrl->GetText());
246 const TString AliEveFileDialog::GetCDBStoragePath() const
250 switch(fCDBPathCB->GetSelected()){
251 case AliEveUtil::CDB_LOCAL:
252 cdbSelected = "local://";
254 case AliEveUtil::CDB_MCFULL:
255 cdbSelected = "mcfull://";
257 case AliEveUtil::CDB_MCIDEAL:
258 cdbSelected = "mcideal://";
260 case AliEveUtil::CDB_MCRESIDUAL:
261 cdbSelected = "mcresidual://";
263 case AliEveUtil::CDB_RAW:
264 cdbSelected = "raw://";
267 cdbSelected= "local://";
274 void AliEveFileDialog::onBrowseESDFile()
276 TGFileInfo* fileInfo = new TGFileInfo;
278 const char* types[] = { "ALICE ESD file", "*.root",
279 "ROOT Archive", "*.zip",
282 fileInfo->fFileTypes = types;
284 new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
286 fPathEntryESD->SetText(fileInfo->fFilename);
288 // look for the other files in the current directory
296 void AliEveFileDialog::onBrowseESDfriendFile()
298 TGFileInfo* fileInfo = new TGFileInfo;
300 const char* types[] = { "ALICE ESDfriends file", "*.root",
301 "ROOT Archive", "*.zip",
304 fileInfo->fFileTypes = types;
306 new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
308 fPathEntryESDfriend->SetText(fileInfo->fFilename);
314 void AliEveFileDialog::onBrowseAODFile()
316 TGFileInfo* fileInfo = new TGFileInfo;
318 const char* types[] = { "ALICE AOD file", "*.root",
319 "ROOT Archive", "*.zip",
322 fileInfo->fFileTypes = types;
324 new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
326 fPathEntryAOD->SetText(fileInfo->fFilename);
332 void AliEveFileDialog::onBrowseAODfriendFile()
334 TGFileInfo* fileInfo = new TGFileInfo;
336 const char* types[] = { "ALICE AODfriend file", "*.root",
337 "ROOT Archive", "*.zip",
340 fileInfo->fFileTypes = types;
342 new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
344 fPathEntryAODfriend->SetText(fileInfo->fFilename);
350 void AliEveFileDialog::onBrowseRawFile()
352 TGFileInfo* fileInfo = new TGFileInfo;
354 const char* types[] = { "ALICE RAW file", "*.root",
355 "ROOT Archive", "*.zip",
358 fileInfo->fFileTypes = types;
360 new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
362 fPathEntryRawFile->SetText(fileInfo->fFilename);
368 void AliEveFileDialog::onAccept()
374 void AliEveFileDialog::onReject()
376 fIsAccepted = kFALSE;
380 void AliEveFileDialog::setMode(EAliEveFileDialogMode mode)
385 void AliEveFileDialog::MapWindow()
387 if(IsMapped()) return;
390 TGTransientFrame::MapWindow();
393 gClient->WaitFor(this);
396 void AliEveFileDialog::UnmapWindow()
398 TGTransientFrame::UnmapWindow();
399 gClient->ResetWaitFor(this);
402 void AliEveFileDialog::MapSubwindows()
404 TGTransientFrame::MapSubwindows();
406 // Show/Hide Widgets according to the current Mode
407 if(fMode==kAliEveFDLocal){
408 ShowFrame(fESDFilesFrame);
409 ShowFrame(fAdvancedOptsButton);
410 showAdvancedOpts(fAdvancedOptsButton->IsDown());
412 HideFrame(fUrlFrame);
415 HideFrame(fESDFilesFrame);
416 HideFrame(fAdvancedOptsButton);
417 HideFrame(fAdvancedOptsFrame);
419 ShowFrame(fUrlFrame);
424 void AliEveFileDialog::showAdvancedOpts(Bool_t shown)
428 ShowFrame(fAdvancedOptsFrame);
429 fAdvancedOptsFrame->MapWindow();
432 h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsFrame->GetSize().fHeight+fAdvancedOptsButton->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
434 HideFrame(fAdvancedOptsFrame);
435 fAdvancedOptsFrame->UnmapWindow();
438 h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsButton->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
441 TGDimension size = GetSize();
448 void AliEveFileDialog::CloseWindow()