Logo ROOT  
Reference Guide
TSessionDialogs.cxx
Go to the documentation of this file.
1 // @(#)root/sessionviewer:$Id$
2 // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 
13 /** \class TSessionDialogs
14  \ingroup sessionviewer
15 
16 This file defines several dialogs that are used by TSessionViewer.
17 The following dialogs are available: TNewChainDlg and TNewQueryDlg.
18 
19 */
20 
21 
22 #include "TSessionDialogs.h"
23 #include "TSessionViewer.h"
24 #include "TROOT.h"
25 #include "TSystem.h"
26 #include "TGButton.h"
27 #include "TList.h"
28 #include "TChain.h"
29 #include "TDSet.h"
30 #include "TGTextEntry.h"
31 #include "TGTextBuffer.h"
32 #include "TGNumberEntry.h"
33 #include "TGLabel.h"
34 #include "TGListView.h"
35 #include "TGFSContainer.h"
36 #include "TGFileDialog.h"
37 #include "TGListTree.h"
38 #include "TInterpreter.h"
39 #include "TApplication.h"
40 #include "TObjString.h"
41 #include "TGTableLayout.h"
42 #include "TProof.h"
43 #include "TFileInfo.h"
44 #include "TGMsgBox.h"
45 #include "TRegexp.h"
46 #include "TVirtualX.h"
47 
50 
51 /* not yet used
52 static const char *gParTypes[] = {
53  "Par files", "*.par",
54  "All files", "*",
55  0, 0
56 };
57 */
58 
59 static const char *gDatasetTypes[] = {
60  "ROOT files", "*.root",
61  "All files", "*",
62  0, 0
63 };
64 
65 static const char *gFileTypes[] = {
66  "C files", "*.[C|c]*",
67  "ROOT files", "*.root",
68  "All files", "*",
69  0, 0
70 };
71 
72 //////////////////////////////////////////////////////////////////////////
73 // New Chain Dialog
74 //////////////////////////////////////////////////////////////////////////
75 
76 ////////////////////////////////////////////////////////////////////////////////
77 /// Create a new chain dialog box. Used to list chains present in memory
78 /// and offers the possibility to create new ones by executing macros
79 /// directly from the associate file container.
80 
82  TGTransientFrame(p, main, 350, 300, kVerticalFrame)
83 {
84  Pixel_t backgnd;
85  if (!p || !main) return;
87  fClient->GetColorByName("#F0FFF0", backgnd);
88  AddFrame(new TGLabel(this, new TGHotString("List of Chains in Memory :")),
89  new TGLayoutHints(kLHintsLeft, 5, 5, 7, 2) );
90 
91  // Add TGListView used to show objects in memory
92  fListView = new TGListView(this, 300, 100);
98 
99  fListView->Connect("Clicked(TGLVEntry*, Int_t)", "TNewChainDlg",
100  this, "OnElementClicked(TGLVEntry* ,Int_t)");
101 
102  // Add text entry showing type and name of user's selection
103  TGCompositeFrame* frmSel = new TGHorizontalFrame(this, 300, 100);
104  frmSel->SetCleanup(kDeepCleanup);
105  frmSel->AddFrame(new TGLabel(frmSel, new TGHotString("Selected chain :")),
106  new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 5, 5, 5, 5) );
107  fNameBuf = new TGTextBuffer(100);
108  fName = new TGTextEntry(frmSel, fNameBuf);
110  fName->Associate(this);
112  fName->ChangeBackground(backgnd);
113  frmSel->AddFrame(fName, new TGLayoutHints(kLHintsLeft | kLHintsCenterY | kLHintsExpandX, 5, 5, 5, 5));
114  AddFrame(frmSel, new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
115 
116  AddFrame(new TGLabel(this, "Double-click on the macro to be executed to create a new Chain:"),
117  new TGLayoutHints(kLHintsCenterX, 5, 5, 5, 2));
118 
119  // Add TGListview / TGFileContainer to allow user to execute Macros
120  // for the creation of new TChains / TDSets
121  TGListView* lv = new TGListView(this, 300, 100);
123 
124  Pixel_t white;
125  gClient->GetColorByName("white",white);
126  fContents = new TGFileContainer(lv, kSunkenFrame, white);
128  fContents->SetFilter("*.[C|c]*");
130  fContents->Associate(this);
133  fContents->AddFile(".."); // up level directory
134  fContents->Resize();
135  fContents->StopRefreshTimer(); // stop refreshing
136 
137  // position relative to the parent's window
138  Window_t wdummy;
139  Int_t ax, ay;
140  gVirtualX->TranslateCoordinates( main->GetId(),
142  0, 0, ax, ay, wdummy);
143  Move(ax + 200, ay + 35);
144 
145  TGCompositeFrame *tmp;
146  AddFrame(tmp = new TGCompositeFrame(this, 140, 20, kHorizontalFrame),
148  tmp->SetCleanup(kDeepCleanup);
149  // Apply and Close buttons
150  tmp->AddFrame(fOkButton = new TGTextButton(tmp, "&Ok", 0),
151  new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
152  tmp->AddFrame(fCancelButton = new TGTextButton(tmp, "&Cancel", 1),
153  new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5));
154  fOkButton->Associate(this);
155  fCancelButton->Associate(this);
157 
158  SetWindowName("Chain Selection Dialog");
159  MapSubwindows();
160  Layout();
162  MapWindow();
163  UpdateList();
164 }
165 
166 ////////////////////////////////////////////////////////////////////////////////
167 /// Delete chain dialog.
168 
170 {
171  if (IsZombie()) return;
172  delete fLVContainer;
173  delete fContents;
174  Cleanup();
175 }
176 
177 ////////////////////////////////////////////////////////////////////////////////
178 /// Emits OnElementSelected signal if dset is not zero.
179 
181 {
182  if (obj && (obj->IsA() == TChain::Class() ||
183  obj->IsA() == TDSet::Class())) {
184  Emit("OnElementSelected(TObject *)", (Long_t)obj);
185  }
186 }
187 
188 ////////////////////////////////////////////////////////////////////////////////
189 /// Handle click in the Memory list view and put the type
190 /// and name of selected object in the text entry.
191 
193 {
194  fChain = (TObject *)entry->GetUserData();
195  if (fChain->IsA() == TChain::Class()) {
196  TString s = TString::Format("%s : %s" , ((TChain *)fChain)->GetTitle(),
197  ((TChain *)fChain)->GetName());
198  fName->SetText(s);
199  }
200  else if (fChain->IsA() == TDSet::Class()) {
201  TString s = TString::Format("%s : %s" , ((TDSet *)fChain)->GetName(),
202  ((TDSet *)fChain)->GetObjName());
203  fName->SetText(s);
204  }
206 }
207 
208 ////////////////////////////////////////////////////////////////////////////////
209 /// Update Memory list view.
210 
212 {
213  TGLVEntry *item=0;
214  TObject *obj = 0;
215  fChains = gROOT->GetListOfDataSets();
217  if (!fChains) return;
218  TIter next(fChains);
219  // loop on the list of chains/datasets in memory,
220  // and fill the associated listview
221  while ((obj = (TObject *)next())) {
222  item = 0;
223  if (obj->IsA() == TChain::Class()) {
224  const char *title = ((TChain *)obj)->GetTitle();
225  if (!title[0])
226  ((TChain *)obj)->SetTitle("TChain");
227  item = new TGLVEntry(fLVContainer, ((TChain *)obj)->GetName(),
228  ((TChain *)obj)->GetTitle());
229  }
230  else if (obj->IsA() == TDSet::Class()) {
231  item = new TGLVEntry(fLVContainer, ((TDSet *)obj)->GetObjName(),
232  ((TDSet *)obj)->GetName());
233  }
234  if (item) {
235  item->SetUserData(obj);
236  fLVContainer->AddItem(item);
237  }
238  }
240  Resize();
241 }
242 
243 ////////////////////////////////////////////////////////////////////////////////
244 /// Display content of directory.
245 
247 {
249  gSystem->ChangeDirectory(fname);
250  fContents->ChangeDirectory(fname);
252  fContents->AddFile(".."); // up level directory
253  Resize();
254 }
255 
256 ////////////////////////////////////////////////////////////////////////////////
257 /// Handle double click in the File container.
258 
260 {
261  if (btn!=kButton1) return;
262  gVirtualX->SetCursor(fContents->GetId(),gVirtualX->CreateCursor(kWatch));
263 
264  TString name(f->GetTitle());
265 
266  // Check if the file is a root macro file type
267  if (name.Contains(".C")) {
268  // form the command
269  TString command = TString::Format(".x %s/%s",
271  name.Data());
272  // and process
273  gApplication->ProcessLine(command.Data());
274  UpdateList();
275  } else {
276  // if double clicked on a directory, then display it
278  }
279  gVirtualX->SetCursor(fContents->GetId(),gVirtualX->CreateCursor(kPointer));
280 }
281 
282 ////////////////////////////////////////////////////////////////////////////////
283 /// Process messages for new chain dialog.
284 
286 {
287  switch (GET_MSG(msg)) {
288  case kC_COMMAND:
289  switch (GET_SUBMSG(msg)) {
290  case kCM_BUTTON:
291  switch (parm1) {
292 
293  case 0:
294  // Apply button
297  DeleteWindow();
298  break;
299 
300  case 1:
301  // Close button
302  fChain = 0;
303  DeleteWindow();
304  break;
305  }
306  break;
307  default:
308  break;
309  }
310  break;
311 
312  case kC_CONTAINER:
313  switch (GET_SUBMSG(msg)) {
314  case kCT_ITEMDBLCLICK:
315  if (parm1==kButton1) {
316  TGLVEntry *lv_entry = (TGLVEntry *)fContents->GetLastActive();
317  if (lv_entry) OnDoubleClick(lv_entry, parm1);
318  }
319  break;
320  }
321  break;
322  default:
323  break;
324  }
325  return kTRUE;
326 }
327 
328 ////////////////////////////////////////////////////////////////////////////////
329 /// Close file dialog.
330 
332 {
333  DeleteWindow();
334 }
335 
336 
337 //////////////////////////////////////////////////////////////////////////
338 // New Query Dialog
339 //////////////////////////////////////////////////////////////////////////
340 
341 ////////////////////////////////////////////////////////////////////////////////
342 /// Create a new Query dialog, used by the Session Viewer, to Edit a Query if
343 /// the editmode flag is set, or to create a new one if not set.
344 
346  TQueryDescription *query, Bool_t editmode) :
347  TGTransientFrame(gClient->GetRoot(), gui, Width, Height)
348 {
349  Window_t wdummy;
350  Int_t ax, ay;
351  fEditMode = editmode;
352  fModified = kFALSE;
353  fChain = 0;
354  fQuery = query;
355  if (fQuery && fQuery->fChain) {
356  fChain = fQuery->fChain;
357  }
358  Build(gui);
359  // if in edit mode, update fields with query description data
360  if (editmode && query)
361  UpdateFields(query);
362  else if (!editmode) {
363  TQueryDescription *fquery;
364  fquery = (TQueryDescription *)fViewer->GetActDesc()->fQueries->Last();
365  if(fquery)
366  fTxtQueryName->SetText(fquery->fQueryName);
367  else
368  fTxtQueryName->SetText("Query 1");
369  }
370  MapSubwindows();
371  Resize(Width, Height);
372  // hide options frame
374  fBtnMore->SetText(" More >> ");
375  SetWMSizeHints(Width+5, Height+25, Width+5, Height+25, 1, 1);
377  Layout();
378  SetWindowName("Query Dialog");
379  // Position relative to parent
380  gVirtualX->TranslateCoordinates( fViewer->GetId(),
382  0, 0, ax, ay, wdummy);
383  Move(ax + fViewer->GetWidth()/2, ay + 35);
384 }
385 
386 ////////////////////////////////////////////////////////////////////////////////
387 /// Delete query dialog.
388 
390 {
391  if (IsZombie()) return;
392  Cleanup();
393 }
394 
395 ////////////////////////////////////////////////////////////////////////////////
396 /// Build the "new query" dialog.
397 
399 {
400  TGButton* btnTmp;
401  fViewer = gui;
404  SetMinWidth(500);
405  fFrmNewQuery = new TGGroupFrame(this, "New Query");
407 
409  kLHintsExpandY, 2, 2, 2, 2));
411 
412  // add "Query Name" label and text entry
413  fFrmNewQuery->AddFrame(new TGLabel(fFrmNewQuery, "Query Name :"),
414  new TGTableLayoutHints(0, 1, 0, 1, kLHintsCenterY, 0, 5, 4, 0));
416  (const char *)0, 1), new TGTableLayoutHints(1, 2, 0, 1,
417  kLHintsCenterY, 5, 5, 4, 0));
418 
419  // add "TChain" label and text entry
420  fFrmNewQuery->AddFrame(new TGLabel(fFrmNewQuery, "TChain :"),
421  new TGTableLayoutHints(0, 1, 1, 2, kLHintsCenterY, 0, 5, 4, 0));
423  (const char *)0, 2), new TGTableLayoutHints(1, 2, 1, 2,
424  kLHintsCenterY, 5, 5, 4, 0));
425  fTxtChain->SetToolTipText("Specify TChain or TDSet from memory or file");
427  // add "Browse" button
428  fFrmNewQuery->AddFrame(btnTmp = new TGTextButton(fFrmNewQuery, "Browse..."),
429  new TGTableLayoutHints(2, 3, 1, 2, kLHintsCenterY, 5, 0, 4, 8));
430  btnTmp->Connect("Clicked()", "TNewQueryDlg", this, "OnBrowseChain()");
431 
432  // add "Selector" label and text entry
433  fFrmNewQuery->AddFrame(new TGLabel(fFrmNewQuery, "Selector :"),
434  new TGTableLayoutHints(0, 1, 2, 3, kLHintsCenterY, 0, 5, 0, 0));
436  (const char *)0, 3), new TGTableLayoutHints(1, 2, 2, 3,
437  kLHintsCenterY, 5, 5, 0, 0));
438  // add "Browse" button
439  fFrmNewQuery->AddFrame(btnTmp = new TGTextButton(fFrmNewQuery, "Browse..."),
440  new TGTableLayoutHints(2, 3, 2, 3, kLHintsCenterY, 5, 0, 0, 8));
441  btnTmp->Connect("Clicked()", "TNewQueryDlg", this, "OnBrowseSelector()");
442 
443  // add "Less <<" ("More >>") button
445  new TGTableLayoutHints(2, 3, 4, 5, kLHintsCenterY, 5, 5, 4, 0));
446  fBtnMore->Connect("Clicked()", "TNewQueryDlg", this, "OnNewQueryMore()");
447 
448  // add (initially hidden) options frame
449  fFrmMore = new TGCompositeFrame(fFrmNewQuery, 200, 200);
451 
455 
456  // add "Options" label and text entry
457  fFrmMore->AddFrame(new TGLabel(fFrmMore, "Options :"),
458  new TGTableLayoutHints(0, 1, 0, 1, kLHintsCenterY, 0, 5, 0, 0));
460  (const char *)0, 4), new TGTableLayoutHints(1, 2, 0, 1, 0, 22,
461  0, 0, 8));
462  fTxtOptions->SetText("ASYN");
463 
464  // add "Nb Entries" label and number entry
465  fFrmMore->AddFrame(new TGLabel(fFrmMore, "Nb Entries :"),
466  new TGTableLayoutHints(0, 1, 1, 2, kLHintsCenterY, 0, 5, 0, 0));
470  0, 22, 0, 0, 8));
471  // coverity[negative_returns]: no problem with -1, the format is kNESInteger
473  // add "First Entry" label and number entry
474  fFrmMore->AddFrame(new TGLabel(fFrmMore, "First entry :"),
475  new TGTableLayoutHints(0, 1, 2, 3, kLHintsCenterY, 0, 5, 0, 0));
479  22, 0, 0, 8));
480 
481  // add "Event list" label and text entry
482  fFrmMore->AddFrame(new TGLabel(fFrmMore, "Event list :"),
483  new TGTableLayoutHints(0, 1, 3, 4, kLHintsCenterY, 0, 5, 0, 0));
485  (const char *)0, 6), new TGTableLayoutHints(1, 2, 3, 4, 0, 22,
486  5, 0, 0));
487  // add "Browse" button
488  fFrmMore->AddFrame(btnTmp = new TGTextButton(fFrmMore, "Browse..."),
489  new TGTableLayoutHints(2, 3, 3, 4, 0, 6, 0, 0, 8));
490  btnTmp->Connect("Clicked()", "TNewQueryDlg", this, "OnBrowseEventList()");
491 
492  fTxtQueryName->Associate(this);
493  fTxtChain->Associate(this);
494  fTxtSelector->Associate(this);
495  fTxtOptions->Associate(this);
496  fNumEntries->Associate(this);
497  fNumFirstEntry->Associate(this);
498  fTxtEventList->Associate(this);
499 
500  fTxtQueryName->Connect("TextChanged(char*)", "TNewQueryDlg", this,
501  "SettingsChanged()");
502  fTxtChain->Connect("TextChanged(char*)", "TNewQueryDlg", this,
503  "SettingsChanged()");
504  fTxtSelector->Connect("TextChanged(char*)", "TNewQueryDlg", this,
505  "SettingsChanged()");
506  fTxtOptions->Connect("TextChanged(char*)", "TNewQueryDlg", this,
507  "SettingsChanged()");
508  fNumEntries->Connect("ValueChanged(Long_t)", "TNewQueryDlg", this,
509  "SettingsChanged()");
510  fNumFirstEntry->Connect("ValueChanged(Long_t)", "TNewQueryDlg", this,
511  "SettingsChanged()");
512  fTxtEventList->Connect("TextChanged(char*)", "TNewQueryDlg", this,
513  "SettingsChanged()");
514 
515  TGCompositeFrame *tmp;
516  AddFrame(tmp = new TGCompositeFrame(this, 140, 20, kHorizontalFrame),
518  tmp->SetCleanup(kDeepCleanup);
519  // Add "Save" and "Save & Submit" buttons if we are in edition mode
520  // or "Add" and "Add & Submit" if we are not in edition mode.
521  if (fEditMode) {
522  fBtnSave = new TGTextButton(tmp, "Save");
523  fBtnSubmit = new TGTextButton(tmp, "Save && Submit");
524  }
525  else {
526  fBtnSave = new TGTextButton(tmp, "Add");
527  fBtnSubmit = new TGTextButton(tmp, "Add && Submit");
528  }
530  3, 3, 3, 3));
532  3, 3, 3, 3));
533  fBtnSave->Connect("Clicked()", "TNewQueryDlg", this, "OnBtnSaveClicked()");
534  fBtnSubmit->Connect("Clicked()", "TNewQueryDlg", this, "OnBtnSubmitClicked()");
535  tmp->AddFrame(fBtnClose = new TGTextButton(tmp, "Close"),
536  new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 3, 3, 3, 3));
537  fBtnClose->Connect("Clicked()", "TNewQueryDlg", this, "OnBtnCloseClicked()");
540 }
541 
542 ////////////////////////////////////////////////////////////////////////////////
543 /// Called when window is closed via the window manager.
544 
546 {
547  DeleteWindow();
548 }
549 
550 ////////////////////////////////////////////////////////////////////////////////
551 /// Show/hide options frame and update button text accordingly.
552 
554 {
557  fBtnMore->SetText(" More >> ");
558  }
559  else {
561  fBtnMore->SetText(" Less << ");
562  }
563 }
564 
565 ////////////////////////////////////////////////////////////////////////////////
566 /// Call new chain dialog.
567 
569 {
570  TNewChainDlg *dlg = new TNewChainDlg(fClient->GetRoot(), this);
571  dlg->Connect("OnElementSelected(TObject *)", "TNewQueryDlg",
572  this, "OnElementSelected(TObject *)");
573 }
574 
575 ////////////////////////////////////////////////////////////////////////////////
576 /// Handle OnElementSelected signal coming from new chain dialog.
577 
579 {
580  if (obj) {
581  fChain = obj;
582  if (obj->IsA() == TChain::Class())
584  else if (obj->IsA() == TDSet::Class())
585  fTxtChain->SetText(((TDSet *)fChain)->GetObjName());
586  }
587 }
588 
589 ////////////////////////////////////////////////////////////////////////////////
590 /// Open file browser to choose selector macro.
591 
593 {
594  TGFileInfo fi;
595  fi.fFileTypes = gFileTypes;
596  new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi);
597  if (!fi.fFilename) return;
599 }
600 
601 ////////////////////////////////////////////////////////////////////////////////
602 ///Browse event list
603 
605 {
606 }
607 
608 ////////////////////////////////////////////////////////////////////////////////
609 /// Save current settings in main session viewer.
610 
612 {
613  // if we are in edition mode and query description is valid,
614  // use it, otherwise create a new one
615  TQueryDescription *newquery;
616  if (fEditMode && fQuery)
617  newquery = fQuery;
618  else
619  newquery = new TQueryDescription();
620 
621  // update query description fields
622  newquery->fSelectorString = fTxtSelector->GetText();
623  if (fChain) {
624  newquery->fTDSetString = fChain->GetName();
625  newquery->fChain = fChain;
626  }
627  else {
628  newquery->fTDSetString = "";
629  newquery->fChain = 0;
630  }
631  newquery->fQueryName = fTxtQueryName->GetText();
632  newquery->fOptions.Form("%s",fTxtOptions->GetText());
633  newquery->fNoEntries = fNumEntries->GetIntNumber();
634  newquery->fFirstEntry = fNumFirstEntry->GetIntNumber();
635  newquery->fNbFiles = 0;
636  newquery->fResult = 0;
637 
638  if (newquery->fChain) {
639  if (newquery->fChain->IsA() == TChain::Class())
640  newquery->fNbFiles = ((TChain *)newquery->fChain)->GetListOfFiles()->GetEntriesFast();
641  else if (newquery->fChain->IsA() == TDSet::Class())
642  newquery->fNbFiles = ((TDSet *)newquery->fChain)->GetListOfElements()->GetSize();
643  }
644  if (!fEditMode) {
645  // if not in editor mode, create a new list tree item
646  // and set user data to the newly created query description
647  newquery->fResult = 0;
649 
650  TQueryDescription *fquery;
652  while (fquery) {
653  int e = 1, j = 0, idx = 0;
654  const char *name = fquery->fQueryName;
655  for (int i=strlen(name)-1;i>0;i--) {
656  if (isdigit(name[i])) {
657  idx += (name[i]-'0') * e;
658  e *= 10;
659  j++;
660  }
661  else
662  break;
663  }
664  if (idx > 0) {
665  idx++;
666  newquery->fQueryName.Remove(strlen(name)-j,j);
667  newquery->fQueryName.Append(Form("%d",idx));
668  }
669  else
670  newquery->fQueryName.Append(" 1");
672  }
673  fTxtQueryName->SetText(newquery->fQueryName);
674  fViewer->GetActDesc()->fQueries->Add((TObject *)newquery);
679  item2->SetUserData(newquery);
684  fViewer->OnListTreeClicked(item2, 1, 0, 0);
685  }
686  else {
687  // else if in editor mode, just update user data with modified
688  // query description
690  fViewer->GetSessionHierarchy()->RenameItem(item, newquery->fQueryName);
691  item->SetUserData(newquery);
692  }
693  // update list tree
698  fModified = kFALSE;
699 }
700 
701 ////////////////////////////////////////////////////////////////////////////////
702 /// Save and submit query description.
703 
705 {
708 }
709 
710 ////////////////////////////////////////////////////////////////////////////////
711 /// Close dialog.
712 
714 {
715  Int_t result = kMBNo;
716  if (fModified) {
717  new TGMsgBox(fClient->GetRoot(), this, "Modified Settings",
718  "Do you wish to SAVE changes ?", 0,
719  kMBYes | kMBNo | kMBCancel, &result);
720  if (result == kMBYes) {
722  }
723  }
724  if (result == kMBNo) {
725  DeleteWindow();
726  }
727 }
728 
729 ////////////////////////////////////////////////////////////////////////////////
730 /// Display dialog and set focus to query name text entry.
731 
733 {
734  MapWindow();
736 }
737 
738 ////////////////////////////////////////////////////////////////////////////////
739 /// Settings have changed, update GUI accordingly.
740 
742 {
743  if (fEditMode && fQuery) {
744  if ((strcmp(fQuery->fSelectorString.Data(), fTxtSelector->GetText())) ||
745  (strcmp(fQuery->fQueryName.Data(), fTxtQueryName->GetText())) ||
746  (strcmp(fQuery->fOptions.Data(), fTxtOptions->GetText())) ||
749  (fQuery->fChain != fChain)) {
750  fModified = kTRUE;
751  }
752  else {
753  fModified = kFALSE;
754  }
755  }
756  else {
757  if ((fTxtQueryName->GetText()) &&
758  ((fTxtQueryName->GetText()) ||
759  (fTxtChain->GetText())))
760  fModified = kTRUE;
761  else
762  fModified = kFALSE;
763  }
764  if (fModified) {
767  }
768  else {
771  }
772 }
773 
774 ////////////////////////////////////////////////////////////////////////////////
775 /// Update entry fields with query description values.
776 
778 {
779  fQuery = desc;
781  fTxtChain->SetText("");
782  if (desc->fChain)
785  fTxtOptions->SetText(desc->fOptions);
789 }
790 ////////////////////////////////////////////////////////////////////////////////
791 /// Process messages for new query dialog.
792 /// Essentially used to navigate between text entry fields.
793 
795 {
796  switch (GET_MSG(msg)) {
797  case kC_TEXTENTRY:
798  switch (GET_SUBMSG(msg)) {
799  case kTE_ENTER:
800  case kTE_TAB:
801  switch (parm1) {
802  case 1: // Query Name
803  fTxtChain->SelectAll();
804  fTxtChain->SetFocus();
805  break;
806  case 2: // Chain Name
809  break;
810  case 3: // Selector Name
813  break;
814  case 4: // Options
817  break;
818  case 6: // Event List
821  break;
822  }
823  break;
824 
825  default:
826  break;
827  }
828  break;
829 
830  default:
831  break;
832  }
833  return kTRUE;
834 }
835 
836 //////////////////////////////////////////////////////////////////////////
837 // Upload DataSet Dialog
838 //////////////////////////////////////////////////////////////////////////
839 
840 ////////////////////////////////////////////////////////////////////////////////
841 /// Create a Upload DataSet dialog box. Used to create and upload a dataset
842 
844  TGTransientFrame(gClient->GetRoot(), gui, w, h)
845 {
846  fUploading = kFALSE;
847  if (!gui) return;
848  fViewer = gui;
849 
851  TGHorizontalFrame *hFrame1 = new TGHorizontalFrame(this);
852  hFrame1->SetCleanup(kDeepCleanup);
853  hFrame1->AddFrame(new TGLabel(hFrame1,"Name of DataSet :"),
855  10, 10, 5, 5));
856  fDSetName = new TGTextEntry(hFrame1, new TGTextBuffer(50));
857  fDSetName->SetText("DataSet1");
860  10, 10, 5, 5));
862  2, 2, 2, 2));
863 
864  // "DataSet Files" group frame
865  TGGroupFrame *groupFrame1 = new TGGroupFrame(this, "DataSet Files");
866  groupFrame1->SetCleanup(kDeepCleanup);
867 
868  // horizontal frame for files location URL
869  TGHorizontalFrame *hFrame11 = new TGHorizontalFrame(groupFrame1);
870  hFrame11->SetCleanup(kDeepCleanup);
871  hFrame11->AddFrame(new TGLabel(hFrame11,"Location URL :"),
873  10, 10, 5, 5));
874  fLocationURL = new TGTextEntry(hFrame11, new TGTextBuffer(150));
875  fLocationURL->SetToolTipText("Enter location URL (i.e \"root://host//path/to/file.root\")");
878  kLHintsCenterY, 10, 10, 5, 5));
879  fAddButton = new TGTextButton(hFrame11, " Add >> ", 0);
880  fAddButton->SetToolTipText("Add file(s) to the list");
881  fAddButton->Associate(this);
883  kLHintsExpandX, 5, 10, 5, 5));
884  groupFrame1->AddFrame(hFrame11, new TGLayoutHints(kLHintsLeft | kLHintsTop |
885  kLHintsExpandX, 2, 2, 2, 2));
886  // horizontal frame for the list view displaying list of files
887  // and for a vertical frame with control buttons
888  TGHorizontalFrame *hFrame2 = new TGHorizontalFrame(groupFrame1);
889  hFrame2->SetCleanup(kDeepCleanup);
890 
891  // list view
892  // Add TGListView used to show list of files
893  fListView = new TGListView(hFrame2, 300, 100);
899  fLVContainer->SetHeader("File Name", kTextLeft, kTextLeft , 0);
901  kLHintsExpandX | kLHintsExpandY, 2, 2, 10, 10));
902 
903  // vertical frame for control buttons
904  TGVerticalFrame *vFrame1 = new TGVerticalFrame(hFrame2);
905  vFrame1->SetCleanup(kDeepCleanup);
906 
907  fBrowseButton = new TGTextButton(vFrame1, " Browse... ", 1);
908  fBrowseButton->SetToolTipText("Add file(s) to the list");
909  fBrowseButton->Associate(this);
911  kLHintsExpandX, 15, 5, 5, 5));
912  fRemoveButton = new TGTextButton(vFrame1, " Remove ", 2);
913  fRemoveButton->SetToolTipText("Remove selected file from the list");
914  fRemoveButton->Associate(this);
916  kLHintsExpandX, 15, 5, 5, 5));
917  fClearButton = new TGTextButton(vFrame1, " Clear ", 3);
918  fClearButton->SetToolTipText("Clear list of files");
919  fClearButton->Associate(this);
921  kLHintsExpandX, 15, 5, 5, 5));
922 
923  fOverwriteDSet = new TGCheckButton(vFrame1, "Overwrite DataSet");
924  fOverwriteDSet->SetToolTipText("Overwrite DataSet");
926  kLHintsExpandX, 15, 5, 5, 5));
927  fOverwriteFiles = new TGCheckButton(vFrame1, "Overwrite Files");
928  fOverwriteFiles->SetToolTipText("Overwrite files in DataSet");
930  kLHintsExpandX, 15, 5, 5, 5));
931  fAppendFiles = new TGCheckButton(vFrame1, "Append Files");
932  fAppendFiles->SetToolTipText("Append files in DataSet");
934  kLHintsExpandX, 15, 5, 5, 5));
935 
936  fOverwriteDSet->Connect("Toggled(Bool_t)", "TUploadDataSetDlg", this,
937  "OnOverwriteDataset(Bool_t)");
938  fOverwriteFiles->Connect("Toggled(Bool_t)", "TUploadDataSetDlg", this,
939  "OnOverwriteFiles(Bool_t)");
940  fAppendFiles->Connect("Toggled(Bool_t)", "TUploadDataSetDlg", this,
941  "OnAppendFiles(Bool_t)");
942 
943  hFrame2->AddFrame(vFrame1, new TGLayoutHints(kLHintsRight | kLHintsTop |
944  kLHintsExpandY, 2, 2, 2, 2));
945  groupFrame1->AddFrame(hFrame2, new TGLayoutHints(kLHintsLeft | kLHintsTop |
946  kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2));
947 
948  AddFrame(groupFrame1, new TGLayoutHints(kLHintsLeft | kLHintsTop |
949  kLHintsExpandX, 5, 5, 2, 2));
950 
951  // horizontal frame for destination URL
952  TGHorizontalFrame *hFrame3 = new TGHorizontalFrame(this);
953  hFrame3->SetCleanup(kDeepCleanup);
954  hFrame3->AddFrame(new TGLabel(hFrame3,"Destination URL :"),
956  15, 10, 5, 5));
957  fDestinationURL = new TGTextEntry(hFrame3, new TGTextBuffer(150));
958  if (fViewer->GetActDesc()->fConnected &&
960  fViewer->GetActDesc()->fProof &&
961  fViewer->GetActDesc()->fProof->IsValid()) {
962  // const char *dest = fViewer->GetActDesc()->fProof->GetDataPoolUrl();
963  // fDestinationURL->SetText(dest);
964  }
965  fDestinationURL->SetToolTipText("Enter destination URL ( relative to \" root://host//proofpool/user/ \" )");
968  kLHintsCenterY, 10, 15, 5, 5));
970  2, 2, 2, 2));
971 
972  // horizontal frame for upload and close buttons
973  TGHorizontalFrame *hFrame4 = new TGHorizontalFrame(this);
974  hFrame4->SetCleanup(kDeepCleanup);
975  fUploadButton = new TGTextButton(hFrame4, "Upload DataSet", 10);
976  fUploadButton->SetToolTipText("Upload the dataset to the cluster");
977  fUploadButton->Associate(this);
979  kLHintsExpandX, 15, 15, 2, 2));
980  fCloseDlgButton = new TGTextButton(hFrame4, "Close Dialog", 11);
981  fCloseDlgButton->SetToolTipText("Close the dialog");
982  fCloseDlgButton->Associate(this);
984  kLHintsExpandX, 15, 15, 2, 2));
986  2, 2, 2, 2));
987 
988  // position relative to the parent's window
989  Window_t wdummy;
990  Int_t ax, ay;
991  gVirtualX->TranslateCoordinates( gui->GetId(),
993  0, 0, ax, ay, wdummy);
994  Move(ax + 250, ay + 200);
995 
996  SetWindowName("Upload DataSet Dialog");
997  MapSubwindows();
998  MapWindow();
999 
1000  Resize(w, h);
1001  SetWMSizeHints(w+5, h+5, w+5, h+5, 1, 1);
1003  Layout();
1004 }
1005 
1006 ////////////////////////////////////////////////////////////////////////////////
1007 /// Delete chain dialog.
1008 
1010 {
1011  if (IsZombie()) return;
1012  Cleanup();
1013 }
1014 
1015 ////////////////////////////////////////////////////////////////////////////////
1016 /// Close upload dataset dialog.
1017 
1019 {
1020  if (!fUploading)
1021  DeleteWindow();
1022 }
1023 
1024 ////////////////////////////////////////////////////////////////////////////////
1025 /// Process messages for upload dataset dialog.
1026 
1028 {
1029  switch (GET_MSG(msg)) {
1030  case kC_COMMAND:
1031  switch (GET_SUBMSG(msg)) {
1032  case kCM_BUTTON:
1033  switch (parm1) {
1034  case 0:
1035  // Add button
1036  if (fLocationURL->GetText())
1038  break;
1039  case 1:
1040  // Add button
1041  BrowseFiles();
1042  break;
1043  case 2:
1044  // Remove button
1045  RemoveFile();
1046  break;
1047  case 3:
1048  // Clear button
1049  ClearFiles();
1050  break;
1051  case 10:
1052  // Upload button
1053  UploadDataSet();
1054  break;
1055  case 11:
1056  // Close button
1057  CloseWindow();
1058  break;
1059  }
1060  break;
1061  default:
1062  break;
1063  }
1064  break;
1065 
1066  default:
1067  break;
1068  }
1069  return kTRUE;
1070 }
1071 
1072 ////////////////////////////////////////////////////////////////////////////////
1073 /// Add File name(s) from the file location URL to the list view.
1074 
1075 void TUploadDataSetDlg::AddFiles(const char *fileName)
1076 {
1077  if (strlen(fileName) < 5)
1078  return;
1079  if (strstr(fileName,"*.")) {
1080  // wildcarding case
1081  void *filesDir = gSystem->OpenDirectory(gSystem->GetDirName(fileName));
1082  const char* ent;
1083  TString filesExp(gSystem->BaseName(fileName));
1084  filesExp.ReplaceAll("*",".*");
1085  TRegexp rg(filesExp);
1086  while ((ent = gSystem->GetDirEntry(filesDir))) {
1087  TString entryString(ent);
1088  if (entryString.Index(rg) != kNPOS &&
1089  gSystem->AccessPathName(Form("%s/%s", gSystem->GetDirName(fileName).Data(),
1090  ent), kReadPermission) == kFALSE) {
1091  TString text = TString::Format("%s/%s",
1092  gSystem->UnixPathName(gSystem->GetDirName(fileName)), ent);
1093  if (!fLVContainer->FindItem(text.Data())) {
1094  TGLVEntry *entry = new TGLVEntry(fLVContainer, text.Data(), text.Data());
1095  entry->SetPictures(gClient->GetPicture("rootdb_t.xpm"),
1096  gClient->GetPicture("rootdb_t.xpm"));
1097  fLVContainer->AddItem(entry);
1098  }
1099  }
1100  }
1101  }
1102  else {
1103  // single file
1104  if (!fLVContainer->FindItem(fileName)) {
1105  TGLVEntry *entry = new TGLVEntry(fLVContainer, fileName, fileName);
1106  entry->SetPictures(gClient->GetPicture("rootdb_t.xpm"),
1107  gClient->GetPicture("rootdb_t.xpm"));
1108  fLVContainer->AddItem(entry);
1109  }
1110  }
1111  // update list view
1113  fListView->Layout();
1115 }
1116 
1117 ////////////////////////////////////////////////////////////////////////////////
1118 /// Add File name(s) from the file location URL to the list view.
1119 
1121 {
1122  TObjString *el;
1123  TIter next(fileList);
1124  while ((el = (TObjString *) next())) {
1125  TString fileName = TString::Format("%s/%s",
1127  gSystem->BaseName(el->GetString()));
1128  // single file
1129  if (!fLVContainer->FindItem(fileName.Data())) {
1130  TGLVEntry *entry = new TGLVEntry(fLVContainer, fileName.Data(), fileName.Data());
1131  entry->SetPictures(gClient->GetPicture("rootdb_t.xpm"),
1132  gClient->GetPicture("rootdb_t.xpm"));
1133  fLVContainer->AddItem(entry);
1134  }
1135  }
1136  // update list view
1138  fListView->Layout();
1140 }
1141 
1142 ////////////////////////////////////////////////////////////////////////////////
1143 /// Opens the TGFileDialog to allow user to select local file(s) to be added
1144 /// in the list view of dataset files.
1145 
1147 {
1148  TGFileInfo fi;
1150  fi.SetFilename("*.root");
1151  new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi);
1152  if (fi.fMultipleSelection && fi.fFileNamesList) {
1154  }
1155  else if (fi.fFilename) {
1156  AddFiles(fi.fFilename);
1157  }
1158 }
1159 
1160 ////////////////////////////////////////////////////////////////////////////////
1161 /// Clear content of the list view.
1162 
1164 {
1166  fListView->Layout();
1167  // update list view
1169 }
1170 
1171 ////////////////////////////////////////////////////////////////////////////////
1172 /// Notification of Overwrite Dataset check button.
1173 
1175 {
1176  if (on && fAppendFiles->IsOn())
1178 }
1179 
1180 ////////////////////////////////////////////////////////////////////////////////
1181 /// Notification of Overwrite Files check button.
1182 
1184 {
1185 }
1186 
1187 ////////////////////////////////////////////////////////////////////////////////
1188 /// Notification of Append Files check button.
1189 
1191 {
1192  if (on && fOverwriteDSet->IsOn())
1194 }
1195 
1196 ////////////////////////////////////////////////////////////////////////////////
1197 /// Remove the selected entry from the list view.
1198 
1200 {
1201  TGFrame *item = (TGFrame *)fLVContainer->GetLastActive();
1202  fLVContainer->RemoveItem(item);
1203  // update list view
1205  fListView->Layout();
1207 }
1208 
1209 ////////////////////////////////////////////////////////////////////////////////
1210 /// Upload the dataset to the server.
1211 
1213 {
1214  Int_t retval;
1215  TString fileList;
1216  const char *dsetName = fDSetName->GetText();
1217  const char *destination = fDestinationURL->GetText();
1218  UInt_t flags = 0;
1219 
1220  if (fUploading)
1221  return;
1222 
1223  if (!fViewer->GetActDesc()->fConnected ||
1224  !fViewer->GetActDesc()->fAttached ||
1225  !fViewer->GetActDesc()->fProof ||
1226  !fViewer->GetActDesc()->fProof->IsValid()) {
1227  return;
1228  }
1229 
1230  TList *skippedFiles = new TList();
1231  TList *datasetFiles = new TList();
1232 
1233  // Format upload flags with user selection
1234  if (fOverwriteDSet->IsOn())
1235  flags |= TProof::kOverwriteDataSet;
1236  else
1237  flags |= TProof::kNoOverwriteDataSet;
1238  if (fOverwriteFiles->IsOn())
1239  flags |= TProof::kOverwriteAllFiles;
1240  else
1241  flags |= TProof::kOverwriteNoFiles;
1242  if (fAppendFiles->IsOn()) {
1243  flags |= TProof::kAppend;
1244  if (flags & TProof::kNoOverwriteDataSet)
1245  flags &= ~TProof::kNoOverwriteDataSet;
1246  }
1247 
1248  Int_t ret = 0;
1249  TIter next(fLVContainer->GetList());
1250  TGFrameElement *el;
1251  TGLVEntry *entry;
1252 
1253  while ((el = (TGFrameElement *)next())) {
1254  entry = (TGLVEntry *) el->fFrame;
1255  const char *fname = gSystem->UnixPathName(entry->GetTitle());
1256  datasetFiles->Add(new TFileInfo(fname));
1257  }
1258  fUploading = kTRUE;
1261 
1262  if (strlen(destination) < 2) destination = 0;
1263 
1264  // GG 17/8/2012 -- BEGIN
1265  // NB: UploadDataSet is obsolete; these changes are the minimal ones to make
1266  // the build after the removal of an obsolete structure in TProof.h;
1267  // but all this needs to be reconsidered.
1268  ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName,
1269  datasetFiles, destination, flags, skippedFiles);
1270 #if 0
1271  if (ret == TProof::kDataSetExists) {
1272  // ask user what to do :
1273  // cancel/overwrite and change option
1274  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1275  TString::Format("The dataset \"%s\" already exists on the cluster ! Overwrite ?",
1276  dsetName), kMBIconQuestion, kMBYes | kMBNo | kMBCancel | kMBAppend,
1277  &retval);
1278  if (retval == kMBYes) {
1279  ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName,
1280  datasetFiles, destination,
1283  skippedFiles);
1284  }
1285  if (retval == kMBAppend) {
1286  ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName,
1287  datasetFiles, destination,
1288  TProof::kAppend |
1290  skippedFiles);
1291  }
1292  }
1293 #endif
1294  if (ret != 0) {
1295  // Inform user
1296  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1297  "Failed uploading dataset/files to the cluster",
1298  kMBIconExclamation, kMBOk, &retval);
1299  fUploading = kFALSE;
1302  return;
1303  }
1304  // Here we cope with files that existed on the cluster and were skipped.
1305  if (skippedFiles->GetSize()) {
1306  TIter nexts(skippedFiles);
1307  while (TFileInfo *obj = (TFileInfo*)nexts()) {
1308  // Notify user that file: obj->GetFirstUrl()->GetUrl() exists on
1309  // the cluster and ask user what to do
1310  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1311  TString::Format("The file \"%s\" already exists on the cluster ! Overwrite ?",
1312  obj->GetFirstUrl()->GetUrl()), kMBIconQuestion,
1313  kMBYes | kMBNo | kMBYesAll | kMBNoAll | kMBDismiss, &retval);
1314  if (retval == kMBYesAll) {
1315  ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName,
1316  skippedFiles, destination,
1317  TProof::kAppend |
1319  if (ret != 0) {
1320  // Inform user
1321  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1322  TString::Format("Failed uploading \"%s\" to the cluster",
1323  obj->GetFirstUrl()->GetUrl()), kMBIconExclamation,
1324  kMBOk, &retval);
1325  }
1326  else {
1327  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1328  "Files have been successfully uploaded to the cluster",
1329  kMBIconAsterisk, kMBOk, &retval);
1330  }
1331  fUploading = kFALSE;
1334  return;
1335  }
1336  if ((retval == kMBNoAll) || (retval == kMBDismiss)) {
1337  break;
1338  }
1339  if (retval == kMBYes) {
1340  // Append one file to the dataSet
1341  ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName,
1342  obj->GetFirstUrl()->GetUrl(), destination,
1344  if (ret != 0) {
1345  // Inform user
1346  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1347  TString::Format("Failed uploading \"%s\" to the cluster",
1348  obj->GetFirstUrl()->GetUrl()), kMBIconExclamation,
1349  kMBOk, &retval);
1350  }
1351  else {
1352  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1353  "Files have been successfully uploaded to the cluster",
1354  kMBIconAsterisk, kMBOk, &retval);
1355  }
1356  }
1357  }
1358  skippedFiles->Clear();
1359  }
1360  else {
1361  new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet",
1362  "Files have been successfully uploaded to the cluster",
1363  kMBIconAsterisk, kMBOk, &retval);
1364  }
1365  // GG 17/8/2012 -- END
1366 
1367  // finally, update list of datasets in session viewer
1369  fUploading = kFALSE;
1372 }
1373 
TGCompositeFrame::GetDefaultSize
virtual TGDimension GetDefaultSize() const
std::cout << fWidth << "x" << fHeight << std::endl;
Definition: TGFrame.h:316
TGButton::SetToolTipText
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:445
TProof::kOverwriteNoFiles
@ kOverwriteNoFiles
Definition: TProof.h:358
kMBIconQuestion
@ kMBIconQuestion
Definition: TGMsgBox.h:23
TGClient::GetDefaultRoot
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
Definition: TGClient.cxx:236
TNewQueryDlg::Popup
void Popup()
Display dialog and set focus to query name text entry.
Definition: TSessionDialogs.cxx:732
TGTransientFrame
Defines transient windows that typically are used for dialogs windows.
Definition: TGFrame.h:498
GET_MSG
Int_t GET_MSG(Long_t val)
Definition: WidgetMessageTypes.h:110
TGButton::SetEnabled
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:459
TFileInfo
Class describing a generic file including meta information.
Definition: TFileInfo.h:39
TGContainer::Associate
virtual void Associate(const TGWindow *w)
Definition: TGCanvas.h:89
TGLVEntry::SetPictures
virtual void SetPictures(const TGPicture *bigpic=0, const TGPicture *smallpic=0)
change pictures
Definition: TGListView.cxx:298
TGWindow
ROOT GUI Window base class.
Definition: TGWindow.h:23
kLHintsCenterX
@ kLHintsCenterX
Definition: TGLayout.h:25
TGCheckButton::SetState
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set check button state.
Definition: TGButton.cxx:1250
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:100
TGTextEntry::SetText
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
Definition: TGTextEntry.cxx:611
e
#define e(i)
Definition: RSha256.hxx:103
TSessionDescription::fAttached
Bool_t fAttached
Definition: TSessionViewer.h:138
TGCompositeFrame::GetList
virtual TList * GetList() const
Definition: TGFrame.h:310
TSessionDescription::fConnected
Bool_t fConnected
Definition: TSessionViewer.h:137
TNewChainDlg::fNameBuf
TGTextBuffer * fNameBuf
Definition: TSessionDialogs.h:41
TGFileContainer
Definition: TGFSContainer.h:115
f
#define f(i)
Definition: RSha256.hxx:104
TGLVEntry::GetTitle
virtual const char * GetTitle() const
Returns title of object.
Definition: TGListView.h:89
TUploadDataSetDlg::fViewer
TSessionViewer * fViewer
Definition: TSessionDialogs.h:136
TSystem::ChangeDirectory
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
Definition: TSystem.cxx:862
TGFileContainer::DisplayDirectory
virtual void DisplayDirectory()
Display the contents of the current directory in the container.
Definition: TGFSContainer.cxx:743
TNewQueryDlg::OnBrowseChain
void OnBrowseChain()
Call new chain dialog.
Definition: TSessionDialogs.cxx:568
TSessionViewer::GetSessionHierarchy
TGListTree * GetSessionHierarchy() const
Definition: TSessionViewer.h:581
TSessionViewer
Widget used to manage PROOF or local sessions, PROOF connections, queries construction and results ha...
Definition: TSessionViewer.h:515
TQueryDescription::fTDSetString
TString fTDSetString
Definition: TSessionViewer.h:100
kNPOS
const Ssiz_t kNPOS
Definition: RtypesCore.h:124
TGFileContainer::ChangeDirectory
virtual void ChangeDirectory(const char *path)
Change current directory.
Definition: TGFSContainer.cxx:726
TSystem::BaseName
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
Definition: TSystem.cxx:934
TProof::kNoOverwriteDataSet
@ kNoOverwriteDataSet
Definition: TProof.h:356
TGNumberEntry::SetIntNumber
virtual void SetIntNumber(Long_t val)
Definition: TGNumberEntry.h:180
gVirtualX
#define gVirtualX
Definition: TVirtualX.h:338
TList::FindObject
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
Definition: TList.cxx:578
TString::Data
const char * Data() const
Definition: TString.h:369
kLHintsTop
@ kLHintsTop
Definition: TGLayout.h:27
TNewChainDlg
Definition: TSessionDialogs.h:35
Pixel_t
ULong_t Pixel_t
Pixel value.
Definition: GuiTypes.h:40
gFileTypes
static const char * gFileTypes[]
Definition: TSessionDialogs.cxx:65
TSessionDialogs.h
TNewQueryDlg::fModified
Bool_t fModified
Definition: TSessionDialogs.h:72
TNewChainDlg::CloseWindow
virtual void CloseWindow()
Close file dialog.
Definition: TSessionDialogs.cxx:331
TGListTree::ClearHighlighted
void ClearHighlighted()
Un highlight items.
Definition: TGListTree.cxx:2389
TGTableLayoutHints
This class describes layout hints used by the TGTableLayout class.
Definition: TGTableLayout.h:28
ClassImp
#define ClassImp(name)
Definition: Rtypes.h:364
Form
char * Form(const char *fmt,...)
TGTableLayout.h
TObjString.h
TNewChainDlg::fListView
TGListView * fListView
Definition: TSessionDialogs.h:39
TGCheckButton::IsOn
virtual Bool_t IsOn() const
Definition: TGButton.h:311
TNewQueryDlg::CloseWindow
void CloseWindow()
Called when window is closed via the window manager.
Definition: TSessionDialogs.cxx:545
TNewChainDlg::fLVContainer
TGLVContainer * fLVContainer
Definition: TSessionDialogs.h:40
kMBCancel
@ kMBCancel
Definition: TGMsgBox.h:37
kVerticalFrame
@ kVerticalFrame
Definition: GuiTypes.h:381
TGMsgBox
Definition: TGMsgBox.h:52
TUploadDataSetDlg::fDSetName
TGTextEntry * fDSetName
Definition: TSessionDialogs.h:122
TNewChainDlg::fName
TGTextEntry * fName
Definition: TSessionDialogs.h:42
TGNumberFormat::kNEAAnyNumber
@ kNEAAnyNumber
Attributes of number entry field.
Definition: TGNumberEntry.h:41
TGHotString
TGHotString is a string with a "hot" character underlined.
Definition: TGString.h:42
kLHintsLeft
@ kLHintsLeft
Definition: TGLayout.h:24
TGTextEntry::SetToolTipText
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
Definition: TGTextEntry.cxx:1649
TGLabel
This class handles GUI labels.
Definition: TGLabel.h:24
TGFileInfo::fMultipleSelection
Bool_t fMultipleSelection
if true, allow multiple file selection
Definition: TGFileDialog.h:51
TGCompositeFrame::Cleanup
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:967
TGListTree::HighlightItem
void HighlightItem(TGListTreeItem *item)
Highlight item.
Definition: TGListTree.cxx:2379
TGListTree::FindChildByData
TGListTreeItem * FindChildByData(TGListTreeItem *item, void *userData)
Find child of item by userData.
Definition: TGListTree.cxx:2300
TGFrame::GetDefaultHeight
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:191
TGTextBuffer.h
kButtonUp
@ kButtonUp
Definition: TGButton.h:53
TNewQueryDlg::fTxtQueryName
TGTextEntry * fTxtQueryName
Definition: TSessionDialogs.h:80
TNewQueryDlg::fFrmMore
TGCompositeFrame * fFrmMore
Definition: TSessionDialogs.h:74
gDatasetTypes
static const char * gDatasetTypes[]
Definition: TSessionDialogs.cxx:59
TGMainFrame::SetWMSizeHints
void SetWMSizeHints(UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
Give the window manager minimum and maximum size hints.
Definition: TGFrame.cxx:1880
TNewQueryDlg::fBtnClose
TGTextButton * fBtnClose
Definition: TSessionDialogs.h:76
TGListTree::GetSelected
TGListTreeItem * GetSelected() const
Definition: TGListTree.h:382
TGFileContainer::AddFile
virtual TGFileItem * AddFile(const char *name, const TGPicture *pic=nullptr, const TGPicture *lpic=nullptr)
Add file in container.
Definition: TGFSContainer.cxx:790
TGTextButton
Yield an action as soon as it is clicked.
Definition: TGButton.h:142
TGNumberFormat::kNEANonNegative
@ kNEANonNegative
Non-negative number.
Definition: TGNumberEntry.h:42
TGeant4Unit::s
static constexpr double s
Definition: TGeant4SystemOfUnits.h:162
TSessionQueryFrame::OnBtnSubmit
void OnBtnSubmit()
Submit query.
Definition: TSessionViewer.cxx:3090
TGLVEntry
Definition: TGListView.h:36
TNewQueryDlg::ProcessMessage
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process messages for new query dialog.
Definition: TSessionDialogs.cxx:794
TObjString::GetString
const TString & GetString() const
Definition: TObjString.h:46
TGLVEntry::SetUserData
void SetUserData(void *userData)
Definition: TGListView.h:94
TApplication::ProcessLine
virtual Longptr_t ProcessLine(const char *line, Bool_t sync=kFALSE, Int_t *error=0)
TNewQueryDlg::SettingsChanged
void SettingsChanged()
Settings have changed, update GUI accordingly.
Definition: TSessionDialogs.cxx:741
kMBYes
@ kMBYes
Definition: TGMsgBox.h:31
TUploadDataSetDlg::RemoveFile
void RemoveFile()
Remove the selected entry from the list view.
Definition: TSessionDialogs.cxx:1199
TGFSContainer.h
TUploadDataSetDlg::fClearButton
TGTextButton * fClearButton
Definition: TSessionDialogs.h:130
TList.h
TList::Last
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
Definition: TList.cxx:693
kButton1
@ kButton1
Definition: GuiTypes.h:214
TGMainFrame::SetWindowName
void SetWindowName(const char *name=0)
Set window name. This is typically done via the window manager.
Definition: TGFrame.cxx:1764
TVirtualX.h
TProof::kOverwriteDataSet
@ kOverwriteDataSet
Definition: TProof.h:355
TGLVContainer::SetHeaders
void SetHeaders(Int_t ncolumns)
Definition: TGListView.h:234
TNewQueryDlg::fNumFirstEntry
TGNumberEntry * fNumFirstEntry
Definition: TSessionDialogs.h:85
TGHorizontalFrame
A composite frame that layout their children in horizontal way.
Definition: TGFrame.h:386
TNewQueryDlg::fQuery
TQueryDescription * fQuery
Definition: TSessionDialogs.h:88
TNewQueryDlg::Build
void Build(TSessionViewer *gui)
Build the "new query" dialog.
Definition: TSessionDialogs.cxx:398
TNewQueryDlg::fChain
TObject * fChain
Definition: TSessionDialogs.h:89
TGLVEntry::GetUserData
void * GetUserData() const
Definition: TGListView.h:95
TNewChainDlg::OnElementClicked
void OnElementClicked(TGLVEntry *entry, Int_t btn)
Handle click in the Memory list view and put the type and name of selected object in the text entry.
Definition: TSessionDialogs.cxx:192
TGListTree::AddItem
void AddItem(TGListTreeItem *parent, TGListTreeItem *item)
Add given item to list tree.
Definition: TGListTree.cxx:1957
TString::Format
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition: TString.cxx:2333
TObject::GetTitle
virtual const char * GetTitle() const
Returns title of object.
Definition: TObject.cxx:403
TUploadDataSetDlg::ClearFiles
void ClearFiles()
Clear content of the list view.
Definition: TSessionDialogs.cxx:1163
TNewChainDlg::fChain
TObject * fChain
Definition: TSessionDialogs.h:46
TUploadDataSetDlg::fUploadButton
TGTextButton * fUploadButton
Definition: TSessionDialogs.h:134
TString
Basic string class.
Definition: TString.h:136
kMBNo
@ kMBNo
Definition: TGMsgBox.h:32
TProof::kAppend
@ kAppend
Definition: TProof.h:354
TQueryDescription::fFirstEntry
Long64_t fFirstEntry
Definition: TSessionViewer.h:105
TSystem::AccessPathName
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
Definition: TSystem.cxx:1295
TGFrame
Definition: TGFrame.h:80
TGObject::GetId
Handle_t GetId() const
Definition: TGObject.h:37
kMBDismiss
@ kMBDismiss
Definition: TGMsgBox.h:39
TGListView
A list view is a widget that can contain a number of items arranged in a grid or list.
Definition: TGListView.h:115
kCT_ITEMDBLCLICK
@ kCT_ITEMDBLCLICK
Definition: WidgetMessageTypes.h:55
TUploadDataSetDlg::~TUploadDataSetDlg
virtual ~TUploadDataSetDlg()
Delete chain dialog.
Definition: TSessionDialogs.cxx:1009
text
TText * text
Definition: entrylist_figure1.C:10
TSessionViewer::GetSessionItem
TGListTreeItem * GetSessionItem() const
Definition: TSessionViewer.h:582
TUploadDataSetDlg::fDestinationURL
TGTextEntry * fDestinationURL
Definition: TSessionDialogs.h:123
TUploadDataSetDlg::fCloseDlgButton
TGTextButton * fCloseDlgButton
Definition: TSessionDialogs.h:135
TSystem::GetDirName
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
Definition: TSystem.cxx:1031
TGFrame::MapWindow
virtual void MapWindow()
map window
Definition: TGFrame.h:204
bool
TString::ReplaceAll
TString & ReplaceAll(const TString &s1, const TString &s2)
Definition: TString.h:692
TGTextBuffer
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
Definition: TGTextBuffer.h:19
TGFrame::GetWidth
UInt_t GetWidth() const
Definition: TGFrame.h:224
TNewQueryDlg::fTxtSelector
TGTextEntry * fTxtSelector
Definition: TSessionDialogs.h:82
lv
auto * lv
Definition: textalign.C:5
TGTextEntry::SelectAll
virtual void SelectAll()
Selects all text (i.e.
Definition: TGTextEntry.cxx:1028
TNewChainDlg::OnDoubleClick
virtual void OnDoubleClick(TGLVEntry *, Int_t)
Handle double click in the File container.
Definition: TSessionDialogs.cxx:259
TGFileDialog.h
TGFrameElement::fFrame
TGFrame * fFrame
Definition: TGLayout.h:112
TUploadDataSetDlg::OnOverwriteDataset
void OnOverwriteDataset(Bool_t on)
Notification of Overwrite Dataset check button.
Definition: TSessionDialogs.cxx:1174
kWatch
@ kWatch
Definition: GuiTypes.h:375
TGFrame::GetOptions
virtual UInt_t GetOptions() const
Definition: TGFrame.h:197
TROOT.h
TGContainer::RemoveItem
virtual void RemoveItem(TGFrame *item)
Remove item from container.
Definition: TGCanvas.cxx:660
TGLVContainer::SetHeader
void SetHeader(const char *s, Int_t hmode, Int_t cmode, Int_t idx)
Definition: TGListView.h:235
kMBNoAll
@ kMBNoAll
Definition: TGMsgBox.h:41
TNewQueryDlg::OnNewQueryMore
void OnNewQueryMore()
Show/hide options frame and update button text accordingly.
Definition: TSessionDialogs.cxx:553
TObjString
Collectable string class.
Definition: TObjString.h:28
gClient
#define gClient
Definition: TGClient.h:157
kTextLeft
@ kTextLeft
Definition: TGWidget.h:23
TApplication.h
TObject::GetName
virtual const char * GetName() const
Returns name of object.
Definition: TObject.cxx:359
TGCheckButton
Selects different options.
Definition: TGButton.h:264
TUploadDataSetDlg::OnAppendFiles
void OnAppendFiles(Bool_t on)
Notification of Append Files check button.
Definition: TSessionDialogs.cxx:1190
TRegexp.h
TUploadDataSetDlg::fListView
TGListView * fListView
Definition: TSessionDialogs.h:125
TString::Form
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Definition: TString.cxx:2311
TUploadDataSetDlg::fLVContainer
TGLVContainer * fLVContainer
Definition: TSessionDialogs.h:126
TUploadDataSetDlg::CloseWindow
virtual void CloseWindow()
Close upload dataset dialog.
Definition: TSessionDialogs.cxx:1018
TGFileContainer::GetDirectory
const char * GetDirectory() const
Definition: TGFSContainer.h:163
TGFrame::DeleteWindow
virtual void DeleteWindow()
Delete window.
Definition: TGFrame.cxx:276
TGCompositeFrame::ChangeOptions
virtual void ChangeOptions(UInt_t options)
Change composite frame options. Options is an OR of the EFrameTypes.
Definition: TGFrame.cxx:1043
TGFrame::ChangeBackground
virtual void ChangeBackground(Pixel_t back)
Change frame background color.
Definition: TGFrame.cxx:293
TGFrame::SetMinWidth
virtual void SetMinWidth(UInt_t w)
Definition: TGFrame.h:248
TSessionFrame::UpdateListOfDataSets
void UpdateListOfDataSets()
Update list of dataset present on the cluster.
Definition: TSessionViewer.cxx:1341
TQueryDescription::fOptions
TString fOptions
Definition: TSessionViewer.h:101
kTE_TAB
@ kTE_TAB
Definition: WidgetMessageTypes.h:51
TUploadDataSetDlg::fAppendFiles
TGCheckButton * fAppendFiles
Definition: TSessionDialogs.h:133
TGClient::GetColorByName
Bool_t GetColorByName(const char *name, Pixel_t &pixel) const
Get a color by name.
Definition: TGClient.cxx:397
TChain.h
kSunkenFrame
@ kSunkenFrame
Definition: GuiTypes.h:383
TNewQueryDlg::fBtnSave
TGTextButton * fBtnSave
Definition: TSessionDialogs.h:77
TSessionViewer::WriteConfiguration
void WriteConfiguration(const char *filename=0)
Save actual configuration in config file "filename".
Definition: TSessionViewer.cxx:4205
TNewQueryDlg::TNewQueryDlg
TNewQueryDlg(TSessionViewer *gui, Int_t Width, Int_t Height, TQueryDescription *query=0, Bool_t editmode=kFALSE)
Create a new Query dialog, used by the Session Viewer, to Edit a Query if the editmode flag is set,...
Definition: TSessionDialogs.cxx:345
TGFileInfo::SetFilename
void SetFilename(const char *fname)
Set file name.
Definition: TGFileDialog.cxx:107
TUploadDataSetDlg::TUploadDataSetDlg
TUploadDataSetDlg(TSessionViewer *gui, Int_t w, Int_t h)
Create a Upload DataSet dialog box. Used to create and upload a dataset.
Definition: TSessionDialogs.cxx:843
TProof::kOverwriteAllFiles
@ kOverwriteAllFiles
Definition: TProof.h:357
TGFileContainer::SetFilter
virtual void SetFilter(const char *filter)
Set file selection filter.
Definition: TGFSContainer.cxx:606
TSystem.h
TFileInfo.h
kLHintsCenterY
@ kLHintsCenterY
Definition: TGLayout.h:28
TUploadDataSetDlg::fOverwriteFiles
TGCheckButton * fOverwriteFiles
Definition: TSessionDialogs.h:132
TNewChainDlg::ProcessMessage
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process messages for new chain dialog.
Definition: TSessionDialogs.cxx:285
h
#define h(i)
Definition: RSha256.hxx:106
TGTextButton::SetText
virtual void SetText(TGHotString *new_label)
Set new button text.
Definition: TGButton.cxx:644
TGListTree::SetSelected
void SetSelected(TGListTreeItem *item)
Definition: TGListTree.h:353
TGWindow::GetName
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
Definition: TGWindow.cxx:336
TGCompositeFrame::MapSubwindows
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1164
TGVerticalFrame
A composite frame that layout their children in vertical way.
Definition: TGFrame.h:375
TGListTreeItem::SetUserData
virtual void SetUserData(void *, Bool_t=kFALSE)
Definition: TGListTree.h:79
kLVDetails
@ kLVDetails
Definition: TGListView.h:25
TSessionDescription::fProof
TProof * fProof
Definition: TSessionViewer.h:145
TGWidget::Associate
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:72
TGFrame::Resize
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:605
TUploadDataSetDlg::fOverwriteDSet
TGCheckButton * fOverwriteDSet
Definition: TSessionDialogs.h:131
TGTextEntry
A TGTextEntry is a one line text input widget.
Definition: TGTextEntry.h:24
TString::Remove
TString & Remove(Ssiz_t pos)
Definition: TString.h:673
kMBIconExclamation
@ kMBIconExclamation
Definition: TGMsgBox.h:24
TGLVContainer::SetDefaultHeaders
void SetDefaultHeaders()
Definition: TGListView.h:237
TGTextEntry::SetFocus
virtual void SetFocus()
Set focus to this text entry.
Definition: TGTextEntry.cxx:1663
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:101
TString::Append
TString & Append(const char *cs)
Definition: TString.h:564
TNewQueryDlg
Definition: TSessionDialogs.h:68
TNewQueryDlg::fBtnSubmit
TGTextButton * fBtnSubmit
Definition: TSessionDialogs.h:78
TProof.h
TSessionViewer::GetActDesc
TSessionDescription * GetActDesc() const
Definition: TSessionViewer.h:579
TGCompositeFrame::HideFrame
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Definition: TGFrame.cxx:1190
kCM_BUTTON
@ kCM_BUTTON
Definition: WidgetMessageTypes.h:34
Long_t
long Long_t
Definition: RtypesCore.h:54
kLHintsRight
@ kLHintsRight
Definition: TGLayout.h:26
kLVSmallIcons
@ kLVSmallIcons
Definition: TGListView.h:23
TUploadDataSetDlg::BrowseFiles
void BrowseFiles()
Opens the TGFileDialog to allow user to select local file(s) to be added in the list view of dataset ...
Definition: TSessionDialogs.cxx:1146
TGFileInfo
Definition: TGFileDialog.h:39
TGLayoutHints
This class describes layout hints used by the layout classes.
Definition: TGLayout.h:50
TNewQueryDlg::~TNewQueryDlg
virtual ~TNewQueryDlg()
Delete query dialog.
Definition: TSessionDialogs.cxx:389
TNewChainDlg::TNewChainDlg
TNewChainDlg(const TGWindow *p=0, const TGWindow *main=0)
Create a new chain dialog box.
Definition: TSessionDialogs.cxx:81
TGGroupFrame
A composite frame with a border and a title.
Definition: TGFrame.h:522
gApplication
R__EXTERN TApplication * gApplication
Definition: TApplication.h:166
TNewQueryDlg::fBtnMore
TGTextButton * fBtnMore
Definition: TSessionDialogs.h:75
TNewQueryDlg::fNumEntries
TGNumberEntry * fNumEntries
Definition: TSessionDialogs.h:84
TQueryDescription::fEventList
TString fEventList
Definition: TSessionViewer.h:102
kC_CONTAINER
@ kC_CONTAINER
Definition: WidgetMessageTypes.h:53
TGContainer::FindItem
virtual void * FindItem(const TString &name, Bool_t direction=kTRUE, Bool_t caseSensitive=kTRUE, Bool_t subString=kFALSE)
Definition: TGCanvas.cxx:1690
TUploadDataSetDlg::UploadDataSet
void UploadDataSet()
Upload the dataset to the server.
Definition: TSessionDialogs.cxx:1212
kTE_ENTER
@ kTE_ENTER
Definition: WidgetMessageTypes.h:50
Window_t
Handle_t Window_t
Window handle.
Definition: GuiTypes.h:29
kFixedSize
@ kFixedSize
Definition: GuiTypes.h:390
TNewQueryDlg::fTxtEventList
TGTextEntry * fTxtEventList
Definition: TSessionDialogs.h:86
TGListView::AdjustHeaders
virtual void AdjustHeaders()
Definition: TGListView.h:154
kLHintsExpandY
@ kLHintsExpandY
Definition: TGLayout.h:31
TNewQueryDlg::fFrmNewQuery
TGCompositeFrame * fFrmNewQuery
Definition: TSessionDialogs.h:73
TUploadDataSetDlg::ProcessMessage
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process messages for upload dataset dialog.
Definition: TSessionDialogs.cxx:1027
TProof::UploadDataSet
Int_t UploadDataSet(const char *, TList *, const char *=0, Int_t=0, TList *=0)
*** This function is deprecated and will disappear in future versions *** *** It is just a wrapper ar...
Definition: TProof.cxx:10631
TQueryDescription::fQueryName
TString fQueryName
Definition: TSessionViewer.h:98
TDSet
This class implements a data set to be used for PROOF processing.
Definition: TDSet.h:153
TNewChainDlg::fChains
TSeqCollection * fChains
Definition: TSessionDialogs.h:45
TQueryDescription::fNbFiles
Int_t fNbFiles
Definition: TSessionViewer.h:103
TGCompositeFrame::SetLayoutManager
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
Definition: TGFrame.cxx:1000
kPointer
@ kPointer
Definition: GuiTypes.h:375
TNewChainDlg::fOkButton
TGTextButton * fOkButton
Definition: TSessionDialogs.h:43
TUploadDataSetDlg::AddFiles
void AddFiles(const char *fileName)
Add File name(s) from the file location URL to the list view.
Definition: TSessionDialogs.cxx:1075
kMBAppend
@ kMBAppend
Definition: TGMsgBox.h:42
TNewChainDlg::UpdateList
void UpdateList()
Update Memory list view.
Definition: TSessionDialogs.cxx:211
unsigned int
TSessionDescription::fQueries
TList * fQueries
Definition: TSessionViewer.h:142
kMBOk
@ kMBOk
Definition: TGMsgBox.h:33
TUploadDataSetDlg::fUploading
Bool_t fUploading
Definition: TSessionDialogs.h:120
TGButton::SetState
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set button state.
Definition: TGButton.cxx:235
TNewQueryDlg::OnBtnSaveClicked
void OnBtnSaveClicked()
Save current settings in main session viewer.
Definition: TSessionDialogs.cxx:611
TRegexp
Regular expression class.
Definition: TRegexp.h:31
kHorizontalFrame
@ kHorizontalFrame
Definition: GuiTypes.h:382
TString::Index
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Definition: TString.h:639
TQueryDescription::fSelectorString
TString fSelectorString
Definition: TSessionViewer.h:99
TObject::IsZombie
R__ALWAYS_INLINE Bool_t IsZombie() const
Definition: TObject.h:149
gSystem
R__EXTERN TSystem * gSystem
Definition: TSystem.h:559
TNewChainDlg::fCancelButton
TGTextButton * fCancelButton
Definition: TSessionDialogs.h:44
TGLabel.h
TNewChainDlg::DisplayDirectory
virtual void DisplayDirectory(const TString &fname)
Display content of directory.
Definition: TSessionDialogs.cxx:246
TNewChainDlg::fContents
TGFileContainer * fContents
Definition: TSessionDialogs.h:38
kC_TEXTENTRY
@ kC_TEXTENTRY
Definition: WidgetMessageTypes.h:48
TGFileInfo::fFileTypes
const char ** fFileTypes
file types used to filter selectable files
Definition: TGFileDialog.h:48
TGClient::NeedRedraw
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
Definition: TGClient.cxx:374
TSessionViewer::OnListTreeClicked
void OnListTreeClicked(TGListTreeItem *entry, Int_t btn, Int_t x, Int_t y)
Handle mouse clicks in list tree.
Definition: TSessionViewer.cxx:4635
TGListView::Layout
virtual void Layout()
Layout list view components (container and contents of container).
Definition: TGListView.cxx:1448
TQObject::Connect
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition: TQObject.cxx:869
TProof::IsValid
Bool_t IsValid() const
Definition: TProof.h:937
TSystem::OpenDirectory
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
Definition: TSystem.cxx:836
TQueryDescription
Definition: TSessionViewer.h:82
TGTextEntry::SetEnabled
void SetEnabled(Bool_t flag=kTRUE)
Definition: TGTextEntry.h:149
TQueryDescription::fChain
TObject * fChain
Definition: TSessionViewer.h:108
TSessionViewer.h
TNewQueryDlg::OnBrowseSelector
void OnBrowseSelector()
Open file browser to choose selector macro.
Definition: TSessionDialogs.cxx:592
TGLVContainer
Definition: TGListView.h:178
TSystem::UnixPathName
virtual const char * UnixPathName(const char *unixpathname)
Convert from a local pathname to a Unix pathname.
Definition: TSystem.cxx:1062
TGMsgBox.h
TGObject::fClient
TGClient * fClient
Connection to display server.
Definition: TGObject.h:27
TCollection::GetSize
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Definition: TCollection.h:182
TInterpreter.h
TNewQueryDlg::fViewer
TSessionViewer * fViewer
Definition: TSessionDialogs.h:87
TGTableLayout
A layout manager, which places child frames in a table arranged in rows and columns,...
Definition: TGTableLayout.h:65
TNewQueryDlg::fEditMode
Bool_t fEditMode
Definition: TSessionDialogs.h:71
TSessionViewer::GetQueryFrame
TSessionQueryFrame * GetQueryFrame() const
Definition: TSessionViewer.h:576
TNewQueryDlg::OnElementSelected
void OnElementSelected(TObject *obj)
Handle OnElementSelected signal coming from new chain dialog.
Definition: TSessionDialogs.cxx:578
TNewQueryDlg::fTxtChain
TGTextEntry * fTxtChain
Definition: TSessionDialogs.h:81
kC_COMMAND
@ kC_COMMAND
Definition: WidgetMessageTypes.h:31
TGFrame::Move
virtual void Move(Int_t x, Int_t y)
Move frame.
Definition: TGFrame.cxx:593
TNewChainDlg::~TNewChainDlg
virtual ~TNewChainDlg()
Delete chain dialog.
Definition: TSessionDialogs.cxx:169
TGCompositeFrame::IsVisible
Bool_t IsVisible(TGFrame *f) const
Get state of sub frame.
Definition: TGFrame.cxx:1231
TList::Add
virtual void Add(TObject *obj)
Definition: TList.h:87
TGLVContainer::SetViewMode
virtual void SetViewMode(EListViewMode viewMode)
Set list view mode for container.
Definition: TGListView.cxx:614
TUploadDataSetDlg::fAddButton
TGTextButton * fAddButton
Definition: TSessionDialogs.h:127
TSystem::GetDirEntry
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
Definition: TSystem.cxx:853
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
TGTextEntry.h
TGVerticalLayout
Definition: TGLayout.h:159
TGButton.h
TNewQueryDlg::UpdateFields
void UpdateFields(TQueryDescription *desc)
Update entry fields with query description values.
Definition: TSessionDialogs.cxx:777
TGListTree.h
TGListTree::RenameItem
void RenameItem(TGListTreeItem *item, const char *string)
Rename item in list tree.
Definition: TGListTree.cxx:2003
GET_SUBMSG
Int_t GET_SUBMSG(Long_t val)
Definition: WidgetMessageTypes.h:111
TList::Clear
virtual void Clear(Option_t *option="")
Remove all objects from the list.
Definition: TList.cxx:402
name
char name[80]
Definition: TGX11.cxx:110
TGNumberEntry::Associate
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
Definition: TGNumberEntry.cxx:2007
TQueryDescription::fResult
TQueryResult * fResult
Definition: TSessionViewer.h:109
kDeepCleanup
@ kDeepCleanup
Definition: TGFrame.h:42
TGNumberFormat::kNELNoLimits
@ kNELNoLimits
Limit selection of number entry field.
Definition: TGNumberEntry.h:47
TGFrame::GetWhitePixel
static Pixel_t GetWhitePixel()
Get white pixel value.
Definition: TGFrame.cxx:709
TUploadDataSetDlg::OnOverwriteFiles
void OnOverwriteFiles(Bool_t on)
Notification of Overwrite Files check button.
Definition: TSessionDialogs.cxx:1183
TGFrameElement
Definition: TGLayout.h:105
TGTextEntry::GetText
const char * GetText() const
Definition: TGTextEntry.h:119
TGNumberEntry::GetIntNumber
virtual Long_t GetIntNumber() const
Definition: TGNumberEntry.h:200
TIter
Definition: TCollection.h:233
TGNumberEntry.h
kLHintsExpandX
@ kLHintsExpandX
Definition: TGLayout.h:30
TProof
This class controls a Parallel ROOT Facility, PROOF, cluster.
Definition: TProof.h:316
TSessionViewer::GetSessionFrame
TSessionFrame * GetSessionFrame() const
Definition: TSessionViewer.h:575
kMBIconAsterisk
@ kMBIconAsterisk
Definition: TGMsgBox.h:25
TNewQueryDlg::OnBtnSubmitClicked
void OnBtnSubmitClicked()
Save and submit query description.
Definition: TSessionDialogs.cxx:704
TGCompositeFrame::TGCompositeFrame
TGCompositeFrame(const TGCompositeFrame &)=delete
TChain
A chain is a collection of files containing TTree objects.
Definition: TChain.h:33
TGCompositeFrame::SetCleanup
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1072
TGNumberEntry
TGNumberEntry is a number entry input widget with up/down buttons.
Definition: TGNumberEntry.h:148
TGFileInfo::fFileNamesList
TList * fFileNamesList
list of selected file names
Definition: TGFileDialog.h:52
TSessionViewer::GetQueryConPict
const TGPicture * GetQueryConPict() const
Definition: TSessionViewer.h:586
TGButton
A button abstract base class.
Definition: TGButton.h:68
Class
void Class()
Definition: Class.C:29
kReadPermission
@ kReadPermission
Definition: TSystem.h:47
TUploadDataSetDlg::fBrowseButton
TGTextButton * fBrowseButton
Definition: TSessionDialogs.h:128
TDSet.h
TGListView.h
TGCompositeFrame
The base class for composite widgets (menu bars, list boxes, etc.).
Definition: TGFrame.h:287
TGClient::GetRoot
const TGWindow * GetRoot() const
Returns current root (i.e.
Definition: TGClient.cxx:226
TGContainer::RemoveAll
virtual void RemoveAll()
Remove all items from the container.
Definition: TGCanvas.cxx:641
TGListTreeItem
Definition: TGListTree.h:27
TQueryDescription::fNoEntries
Long64_t fNoEntries
Definition: TSessionViewer.h:104
TGCompositeFrame::AddFrame
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1117
TGLVContainer::AddItem
virtual void AddItem(TGLVEntry *item)
Definition: TGListView.h:207
TGCompositeFrame::Layout
virtual void Layout()
Layout the elements of the composite frame.
Definition: TGFrame.cxx:1257
TNewQueryDlg::fTxtOptions
TGTextEntry * fTxtOptions
Definition: TSessionDialogs.h:83
TGContainer::GetLastActive
virtual TGFrame * GetLastActive() const
Definition: TGCanvas.h:127
TGListTree::OpenItem
void OpenItem(TGListTreeItem *item)
Open item in list tree (i.e. show child items).
Definition: TGListTree.cxx:2032
TGFileContainer::StopRefreshTimer
void StopRefreshTimer()
stop refresh timer
Definition: TGFSContainer.cxx:877
kMBYesAll
@ kMBYesAll
Definition: TGMsgBox.h:40
TGCompositeFrame::ShowFrame
virtual void ShowFrame(TGFrame *f)
Show sub frame.
Definition: TGFrame.cxx:1204
TUploadDataSetDlg::fRemoveButton
TGTextButton * fRemoveButton
Definition: TSessionDialogs.h:129
kButtonDisabled
@ kButtonDisabled
Definition: TGButton.h:56
TGNumberFormat::kNESInteger
@ kNESInteger
Style of number entry field.
Definition: TGNumberEntry.h:25
TList
A doubly linked list.
Definition: TList.h:44
TQObject::Emit
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition: TQObject.h:164
TUploadDataSetDlg::fLocationURL
TGTextEntry * fLocationURL
Definition: TSessionDialogs.h:124
TNewQueryDlg::OnBtnCloseClicked
void OnBtnCloseClicked()
Close dialog.
Definition: TSessionDialogs.cxx:713
main
int main(int argc, char *argv[])
Definition: cef_main.cxx:54
gROOT
#define gROOT
Definition: TROOT.h:406
TGFileDialog
This class creates a file selection dialog.
Definition: TGFileDialog.h:65
TNewQueryDlg::OnBrowseEventList
void OnBrowseEventList()
Browse event list.
Definition: TSessionDialogs.cxx:604
kFDOpen
@ kFDOpen
Definition: TGFileDialog.h:21
int
TNewChainDlg::OnElementSelected
void OnElementSelected(TObject *obj)
Emits OnElementSelected signal if dset is not zero.
Definition: TSessionDialogs.cxx:180
TQueryDescription::fStatus
ESessionQueryStatus fStatus
Definition: TSessionViewer.h:96
TQueryDescription::kSessionQueryCreated
@ kSessionQueryCreated
Definition: TSessionViewer.h:92
TGFileInfo::fFilename
char * fFilename
selected file name
Definition: TGFileDialog.h:46