16 #include <QMessageBox>
35 QObject::connect(ApplyButton, SIGNAL(clicked()),
this, SLOT(
ApplyClicked()));
37 QObject::connect(PrintListButton, SIGNAL(clicked()),
this, SLOT(
PrintDynList()));
38 QObject::connect(RefreshButton, SIGNAL(clicked()),
this, SLOT(
RefreshClicked()));
39 QObject::connect(SaveEntry, SIGNAL(clicked()),
this, SLOT(
SaveEntrySlot()));
71 if (cl==0)
return false;
73 return cl->InheritsFrom(TGo4DynamicEntry::Class()) ||
74 cl->InheritsFrom(TH1::Class()) ||
75 cl->InheritsFrom(TTree::Class()) ||
76 cl->InheritsFrom(TGo4Condition::Class());
83 if (cl->InheritsFrom(TGo4DynamicEntry::Class()))
86 if (cl->InheritsFrom(TH1::Class()))
89 if (cl->InheritsFrom(TGo4Condition::Class()))
92 if (cl->InheritsFrom(TTree::Class()))
98 if (strcmp(linkname,
"Entry")==0)
111 if ((entry==0) || (br==0))
return;
117 EntryBox->setTitle(QString(
"Entry: ") + entry->ClassName());
120 EntryBox->setEnabled(
true);
121 HistogramBox->setEnabled(
true);
122 EntryTabs->setEnabled(
true);
132 EntryTabs->setTabEnabled(EntryTabs->indexOf(EventTab),
true);
133 EntryTabs->setTabEnabled(EntryTabs->indexOf(ConditionTab),
true);
134 EntryTabs->setTabEnabled(EntryTabs->indexOf(TreeTab),
false);
135 EntryTabs->setCurrentIndex(EntryTabs->indexOf(EventTab));
141 HistoNameLbl->setText(hitemname.Data());
142 DrawButton->setVisible(hitemname.Length()>0);
143 ClearButton->setVisible(hitemname.Length()>0);
146 if (fname.length()>0) fname +=
"/";
148 EvXnameEdit->setText(fname);
151 if (fname.length()>0) fname +=
"/";
153 EvYnameEdit->setText(fname);
156 if (fname.length()>0) fname +=
"/";
158 EvZnameEdit->setText(fname);
164 CondNameLbl->setText(citemname.Data());
167 if (fname.length()>0) fname +=
"/";
169 ConXnameEdit->setText(fname);
172 if (fname.length()>0) fname +=
"/";
174 ConYnameEdit->setText(fname);
179 EntryTabs->setTabEnabled(EntryTabs->indexOf(EventTab),
false);
180 EntryTabs->setTabEnabled(EntryTabs->indexOf(ConditionTab),
false);
181 EntryTabs->setTabEnabled(EntryTabs->indexOf(TreeTab),
true);
182 EntryTabs->setCurrentIndex(EntryTabs->indexOf(TreeTab));
188 HistoNameLbl->setText(hitemname.Data());
189 DrawButton->setVisible(hitemname.Length()>0);
190 ClearButton->setVisible(hitemname.Length()>0);
196 TreeNameLbl->setText(titemname.Data());
198 DrawExprEdit->setText(tentry->
GetVarExp());
199 CutExprEdit->setText(tentry->
GetCutExp());
208 TString folder, name;
214 return QString(folder.Data());
219 TString folder, name;
221 return QString(name.Data());
230 if ((entry!=0) && (oldname!=0) && PleaseUpdateLabel->isVisible()) {
232 int res = QMessageBox::warning(
this,
"Dynamic list entry editor",
233 QString(
"Current entry ")+oldname+
" is modified!\n New entry" +
234 itemname+
" selected.",
235 QString(
"Continue with current"),
236 QString(
"Start with new"), QString(), 0);
246 EntryNameLbl->setText(itemname);
248 QString iconname =
":/icons/right.png";
249 QString tooltip =
"Refresh dynamic entry from analysis";
251 iconname =
":/icons/refresh.png";
252 tooltip =
"Refresh dynamic entry from source";
254 RefreshButton->setIcon( QIcon(iconname) );
255 RefreshButton->setToolTip(tooltip);
261 parentWidget()->adjustSize();
262 parentWidget()->setFocus();
267 if (itemname==0)
return;
271 HistoNameLbl->setText(itemname);
272 DrawButton->setVisible(
true);
273 ClearButton->setVisible(
true);
292 CondNameLbl->setText(itemname);
294 EntryTabs->setCurrentIndex(EntryTabs->indexOf(ConditionTab));
307 TreeNameLbl->setText(itemname);
321 EntryNameLbl->setText(
"");
322 EntryBox->setTitle(QString(
"Entry: "));
324 EntryBox->setEnabled(
false);
325 HistogramBox->setEnabled(
false);
326 EntryTabs->setEnabled(
false);
328 DrawButton->setVisible(
false);
330 RefreshButton->setIcon( QIcon(
":/icons/right.png" ) );
353 PleaseUpdateLabel->setVisible(on);
361 if(!PleaseUpdateLabel->isVisible())
410 if ((edt==0) || (
Browser()==0))
return;
412 QString value = edt->text();
422 QString serachfor(
"EventObjects/Events/");
423 int pos = value.indexOf(serachfor);
429 value.remove(0, pos+serachfor.length());
436 if ((edt==0) || (
Browser()==0))
return;
438 QString value = edt->text();
444 int kind = br->
ItemKind(value.toLatin1().constData());
454 TString lfolder, lname;
456 edt->setText(lname.Data());
484 if (cl->InheritsFrom(TH1::Class()))
487 if (cl->InheritsFrom(TGo4Condition::Class()))
496 if (entry==0)
return false;
502 TString folder, name;
514 TString folder, name;
598 tentry->
SetVarExp(value.toLatin1().constData());
606 tentry->
SetCutExp(value.toLatin1().constData());
629 if (dynamic_cast<TGo4TreeHistogramEntry*>(
GetLinked(
"Entry",0))!=0)
virtual void EvXnameEdit_textChanged(const QString &xname)
virtual QString GetEventName(const QString &itemname)
virtual void PrintDynList()
virtual void ResetWidget()
virtual void WorkWithEntry(const char *itemname)
virtual void ConInfoButton_clicked()
TObject * GetBrowserObject(const char *name, Int_t update=0)
virtual void requestedObjectCreated(const char *itemname, TClass *cl)
virtual void EvZnameEdit_textChanged(const QString &zname)
Int_t ItemKind(const char *name)
void SetCutExp(const char *cut)
virtual void DropItem(const char *itemname, TClass *cl, int kind)
void SetConditionName(const char *name)
void SetDynListInterval(Int_t value)
virtual void DynIntervalSpin_valueChanged(int value)
void SetTreeName(const char *name)
virtual void EvZnameEdit_dropped()
void SetConEventName(Int_t ix, const char *name)
const char * GetConVarName(Int_t ix) const
virtual bool PrepareEntryForAnalysis()
void SetHistogramName(const char *name)
virtual void DrawExprEdit_textChanged(const QString &value)
virtual void ProcessTreeDropEvent(QGo4LineEdit *edt)
virtual void CutExprEdit_dropped()
virtual void ClearAnalysisObject(const char *fullpath)
const char * GetHistogramName() const
virtual void RefreshClicked()
virtual void SetPleaseUpdate(bool on)
virtual void ApplyClicked()
virtual void EvXnameEdit_dropped()
virtual void PrintDynListEntry(const char *fullpath)
virtual void ExecuteLine(const char *line)
virtual void DropTree(const char *itemname)
virtual void HisCreateButton_clicked()
virtual void ConYnameEdit_textChanged(const QString &yname)
virtual void EvYnameEdit_textChanged(const QString &yname)
virtual void SaveEntrySlot()
virtual void DropHistogram(const char *itemname)
void SetHistogramName(const char *name)
virtual void DropCondition(const char *itemname)
const char * GetHistVarName(Int_t ix) const
const char * GetCutExp() const
TGo4EditDynEntry(QWidget *parent=0, const char *name=0)
void SetHisEventName(Int_t ix, const char *name)
Bool_t IsEnabledProcessing() const
virtual bool IsAcceptDrag(const char *itemname, TClass *cl, int kind)
Bool_t DefineRelatedObject(const char *itemname, const char *objectname, TString &objectitem, Int_t mask=3)
virtual void ProcessDropEvent(QGo4LineEdit *edt)
virtual void EntryEnabledButton_toggled(bool on)
const char * GetTreeName() const
const char * GetHistogramName() const
virtual void linkedObjectUpdated(const char *linkname, TObject *obj)
virtual void ConRemoveButton_clicked()
Bool_t DefineTreeName(const char *itemname, TString &treename)
virtual void ConNewButton_clicked()
virtual void ConXnameEdit_dropped()
static void ProduceFolderAndName(const char *fullname, TString &foldername, TString &objectname)
void EnableProcessing(Bool_t on=kTRUE)
virtual void ClearHistogramClicked()
const char * GetVarExp() const
const char * GetConditionName() const
void SetConVarName(Int_t ix, const char *name)
virtual void RefreshWidget()
virtual void EvYnameEdit_dropped()
virtual QString GetEventMember(const QString &itemname)
const char * GetConEventName(Int_t ix) const
TGo4ServerProxy * DefineAnalysisObject(const char *itemname, TString &analysisname)
virtual void DrawButton_clicked()
const char * GetHistEventName(Int_t ix) const
virtual void HisInfoButton_clicked()
virtual void DrawExprEdit_dropped()
void SetVarExp(const char *exp)
virtual void ConXnameEdit_textChanged(const QString &xname)
virtual void ConYnameEdit_dropped()
Int_t GetDynListInterval() const
virtual void CutExprEdit_textChanged(const QString &value)
void SetHisVarName(Int_t ix, const char *name)
virtual void EntryChangedSlot()