Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "TGo4EventInfo.h"
00015 #include "TTree.h"
00016 #include "TGo4AnalysisProxy.h"
00017 #include "TGo4Slot.h"
00018 #include "TGo4BrowserProxy.h"
00019
00020 const char* defMbsEventName = "MbsEvent101";
00021
00022
00023 TGo4EventInfo::TGo4EventInfo(QWidget *parent, const char* name)
00024 : QGo4Widget(parent, name)
00025 {
00026 setupUi(this);
00027 setWindowTitle("Event info");
00028 ResetWidget();
00029 }
00030
00031 bool TGo4EventInfo::IsAcceptDrag(const char* itemname, TClass* cl, int kind)
00032 {
00033 return (kind==TGo4Access::kndEventElement);
00034 }
00035
00036 void TGo4EventInfo::DropItem(const char* itemname, TClass* cl, int kind)
00037 {
00038 if (kind==TGo4Access::kndEventElement)
00039 WorkWithEvent(itemname);
00040 }
00041
00042 void TGo4EventInfo::WorkWithEvent(const char* itemname)
00043 {
00044 EventLbl->setText(itemname);
00045
00046 bool ismbs = QString(itemname).contains(defMbsEventName);
00047
00048 MbsPrintBox->setEnabled(ismbs);
00049 TString mbsitem = Browser()->FindItemInAnalysis(defMbsEventName);
00050 MbsButton->setEnabled(!ismbs && (mbsitem.Length()>0));
00051 setFocus();
00052 }
00053
00054 void TGo4EventInfo::ResetWidget()
00055 {
00056 QGo4Widget::ResetWidget();
00057 EventLbl->setText("");
00058 MbsButton->setEnabled(true);
00059
00060
00061
00062
00063
00064 MbsPrintBox->setEnabled(false);
00065 }
00066
00067 void TGo4EventInfo::linkedObjectUpdated(const char* linkname, TObject* obj)
00068 {
00069 TTree* tr = dynamic_cast<TTree*>(obj);
00070 if (tr!=0) {
00071 tr->Show(0);
00072 return;
00073 }
00074
00075 if (obj!=0) {
00076 obj->Print();
00077 return;
00078 }
00079 }
00080
00081 void TGo4EventInfo::linkedObjectRemoved(const char* linkname)
00082 {
00083 }
00084
00085
00086 void TGo4EventInfo::RefreshClicked()
00087 {
00088 RemoveAllLinks();
00089
00090 if (EventLbl->text().length()==0) return;
00091 QString evname = EventLbl->text();
00092 bool isremote = RemoteButton->isChecked();
00093 bool istree = TreeButton->isChecked();
00094
00095 TGo4Slot* tgtslot = 0;
00096 if (!isremote)
00097 tgtslot = AddSlot("Event");
00098
00099 TGo4BrowserProxy* br = Browser();
00100 if (br!=0)
00101 br->RequestEventStatus(evname.toLatin1().constData(), istree, tgtslot);
00102 }
00103
00104 void TGo4EventInfo::PrintEventClicked()
00105 {
00106 if (EventLbl->text().length()==0) return;
00107
00108 TString folder, name;
00109 TGo4Slot::ProduceFolderAndName(EventLbl->text().toLatin1().constData(), folder, name);
00110
00111 TGo4AnalysisProxy* anal = GetAnalysis(EventLbl->text().toLatin1().constData());
00112
00113 if (anal!=0)
00114 anal->RemotePrintEvent(name.Data(),
00115 PrintEventNum->value(),
00116 PrintEventSid->value(),
00117 HexBox->isChecked(),
00118 LongBox->isChecked());
00119 }
00120
00121 void TGo4EventInfo::MbsButton_clicked()
00122 {
00123 TString itemname = Browser()->FindItemInAnalysis(defMbsEventName);
00124 if (itemname.Length()>0)
00125 WorkWithEvent(itemname.Data());
00126 }