1 #include "AliStorageAdministratorPanelListEvents.h"
13 AliStorageAdministratorPanelListEvents *AliStorageAdministratorPanelListEvents::fInstance=0;
15 ClassImp(AliStorageAdministratorPanelListEvents);
17 #define WINDOWS_WIDTH 400
18 #define WINDOWS_HEIGHT 500
36 TEXTENTRY_MULTIPLICITY_MIN,
37 TEXTENTRY_MULTIPLICITY_MAX
40 AliStorageAdministratorPanelListEvents::AliStorageAdministratorPanelListEvents() :
41 TGMainFrame(gClient->GetRoot(),400,400),
43 fRunNumberMinEntry(0),
44 fRunNumberMaxEntry(0),
45 fEventNumberMinEntry(0),
46 fEventNumberMaxEntry(0),
47 fMultiplicityMinEntry(0),
48 fMultiplicityMaxEntry(0),
49 fProtonProtonCheckButton(0),
50 fLeadLeadCheckButton(0),
55 fServerSocket(SERVER_COMMUNICATION_REQ),
58 fEventManager = AliStorageEventManager::GetEventManagerInstance();
59 fEventManager->CreateSocket(fServerSocket);
63 AliStorageAdministratorPanelListEvents::~AliStorageAdministratorPanelListEvents()
65 cout<<"ADMIN PANEL -- List events descructor called";
66 cout<<" --- OK"<<endl;
69 AliStorageAdministratorPanelListEvents* AliStorageAdministratorPanelListEvents::GetInstance()
71 if(!fInstance){fInstance = new AliStorageAdministratorPanelListEvents();}
76 void AliStorageAdministratorPanelListEvents::SelectedEvent()
78 Emit("SelectedEvent()");
81 void AliStorageAdministratorPanelListEvents::InitWindow()
83 SetCleanup(kDeepCleanup);
86 AddFrame(new TGLabel(this,"Minimum run number:"),new TGLayoutHints(kLHintsLeft));
88 fRunNumberMinEntry = new TGNumberEntry(this,
92 TGNumberFormat::kNESInteger,
93 TGNumberFormat::kNEAPositive,
94 TGNumberFormat::kNELNoLimits);
95 AddFrame(fRunNumberMinEntry,new TGLayoutHints(kLHintsLeft));
98 AddFrame(new TGLabel(this,"Maximum run number:"),new TGLayoutHints(kLHintsLeft));
100 fRunNumberMaxEntry = new TGNumberEntry(this,
104 TGNumberFormat::kNESInteger,
105 TGNumberFormat::kNEAPositive,
106 TGNumberFormat::kNELNoLimits);
107 AddFrame(fRunNumberMaxEntry,new TGLayoutHints(kLHintsLeft));
110 AddFrame(new TGLabel(this,"Minimum event number:"),new TGLayoutHints(kLHintsLeft));
112 fEventNumberMinEntry = new TGNumberEntry(this,
116 TGNumberFormat::kNESInteger,
117 TGNumberFormat::kNEAPositive,
118 TGNumberFormat::kNELNoLimits);
119 AddFrame(fEventNumberMinEntry,new TGLayoutHints(kLHintsLeft));
122 AddFrame(new TGLabel(this,"Maximum event number:"),new TGLayoutHints(kLHintsLeft));
124 fEventNumberMaxEntry = new TGNumberEntry(this,
128 TGNumberFormat::kNESInteger,
129 TGNumberFormat::kNEAPositive,
130 TGNumberFormat::kNELNoLimits);
131 AddFrame(fEventNumberMaxEntry,new TGLayoutHints(kLHintsLeft));
134 AddFrame(new TGLabel(this,"Minimum multiplicity:"),new TGLayoutHints(kLHintsLeft));
136 fMultiplicityMinEntry = new TGNumberEntry(this,
139 TEXTENTRY_MULTIPLICITY_MIN,
140 TGNumberFormat::kNESInteger,
141 TGNumberFormat::kNEAPositive,
142 TGNumberFormat::kNELNoLimits);
143 AddFrame(fMultiplicityMinEntry,new TGLayoutHints(kLHintsLeft));
146 AddFrame(new TGLabel(this,"Maximum multiplicity:"),new TGLayoutHints(kLHintsLeft));
148 fMultiplicityMaxEntry = new TGNumberEntry(this,
151 TEXTENTRY_MULTIPLICITY_MAX,
152 TGNumberFormat::kNESInteger,
153 TGNumberFormat::kNEAPositive,
154 TGNumberFormat::kNELNoLimits);
155 AddFrame(fMultiplicityMaxEntry,new TGLayoutHints(kLHintsLeft));
158 AddFrame(new TGLabel(this,"System:"),new TGLayoutHints(kLHintsLeft));
159 fProtonProtonCheckButton = new TGCheckButton(this,"p-p",BUTTON_CHECK_PP);
160 fProtonProtonCheckButton->SetOn();
161 AddFrame(fProtonProtonCheckButton,new TGLayoutHints(kLHintsLeft));
164 fLeadLeadCheckButton = new TGCheckButton(this,"Pb-Pb",BUTTON_CHECK_PBPB);
165 fLeadLeadCheckButton->SetOn();
166 AddFrame(fLeadLeadCheckButton,new TGLayoutHints(kLHintsLeft));
169 AddFrame(new TGLabel(this,"Storage type:"),new TGLayoutHints(kLHintsLeft));
170 fTempCheckButton = new TGCheckButton(this,"Temporary",BUTTON_CHECK_TEMP);
171 fTempCheckButton->SetOn();
172 AddFrame(fTempCheckButton,new TGLayoutHints(kLHintsLeft));
175 fPermCheckButton = new TGCheckButton(this,"Permanent",BUTTON_CHECK_PERM);
176 fPermCheckButton->SetOn();
177 AddFrame(fPermCheckButton,new TGLayoutHints(kLHintsLeft));
180 fStatusLabel = new TGLabel(this,"");
181 AddFrame(fStatusLabel,new TGLayoutHints(kLHintsExpandX | kLHintsLeft));
184 fCloseButton = new TGTextButton(this,"Close",BUTTON_CLOSE);
185 AddFrame(fCloseButton,
186 new TGLayoutHints(kLHintsLeft));
187 fGetListButton = new TGTextButton(this,"Get event's list",BUTTON_GET_LIST);
188 AddFrame(fGetListButton,
189 new TGLayoutHints(kLHintsRight));
190 fMarkButton = new TGTextButton(this,"Mark selected event",BUTTON_MARK_EVENT);
191 AddFrame(fMarkButton,
192 new TGLayoutHints(kLHintsRight));
193 fLoadButton = new TGTextButton(this,"Load event",BUTTON_LOAD_EVENT);
194 AddFrame(fLoadButton,
195 new TGLayoutHints(kLHintsRight));
199 fEventsList = new TGListBox(this,0);
200 fEventsList->AddEntry(new TGString("Run Event System Mult Marked"),0);
201 AddFrame(fEventsList,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
203 SetWindowName("List Events");
205 Resize(WINDOWS_WIDTH,WINDOWS_HEIGHT);
212 void AliStorageAdministratorPanelListEvents::onGetListButton()
214 //prepare and send request message
215 struct serverRequestStruct *requestMessage = new struct serverRequestStruct;
216 struct listRequestStruct list;
218 //get listing parameters from somwhere
219 list.runNumber[0]=fRunNumberMinEntry->GetIntNumber();
220 list.runNumber[1]=fRunNumberMaxEntry->GetIntNumber();
221 list.eventNumber[0]=fEventNumberMinEntry->GetIntNumber();
222 list.eventNumber[1]=fEventNumberMaxEntry->GetIntNumber();
223 if(fTempCheckButton->GetState()==1)
231 if(fPermCheckButton->GetState()==1)
239 list.multiplicity[0]=fMultiplicityMinEntry->GetIntNumber();
240 list.multiplicity[1]=fMultiplicityMaxEntry->GetIntNumber();
241 if(fProtonProtonCheckButton->GetState()==1)
243 strcpy(list.system[0],"p-p");
247 strcpy(list.system[0],"");
249 if(fLeadLeadCheckButton->GetState()==1)
251 strcpy(list.system[1],"Pb-Pb");
255 strcpy(list.system[1],"");
258 requestMessage->messageType = REQUEST_LIST_EVENTS;
259 requestMessage->list = list;
261 fEventManager->Send(requestMessage,fServerSocket);
263 fEventsList->RemoveAll();
264 fEventsList->AddEntry(new TGString("Run Event System Mult Marked"),0);
266 vector<serverListStruct> receivedList = fEventManager->GetServerListVector(fServerSocket);
268 for(unsigned int i=0;i<receivedList.size();i++)
270 fEventsList->InsertEntry(Form("%d %d %s %d %d ",
271 receivedList[i].runNumber,
272 receivedList[i].eventNumber,
273 receivedList[i].system,
274 receivedList[i].multiplicity,
275 receivedList[i].marked),i+1,i);
277 cout<<receivedList[i].runNumber<<receivedList[i].eventNumber<<endl;
281 fEventsListVector = receivedList;
283 gClient->HandleInput();
284 gClient->NeedRedraw(fEventsList, kTRUE);
285 gClient->HandleInput();
289 delete requestMessage;
293 void AliStorageAdministratorPanelListEvents::onMarkButton()
298 //get run and event number from selected row
299 int selectedEventNumber = fEventsList->GetSelected()-1;
301 if(selectedEventNumber<0)return;
303 runNumber=fEventsListVector[selectedEventNumber].runNumber;
304 eventNumber=fEventsListVector[selectedEventNumber].eventNumber;
306 struct serverRequestStruct *requestMessage = new struct serverRequestStruct;
307 struct eventStruct mark;
308 mark.runNumber = runNumber;
309 mark.eventNumber = eventNumber;
310 requestMessage->messageType = REQUEST_MARK_EVENT;
311 requestMessage->event = mark;
313 fEventManager->Send(requestMessage,fServerSocket);
315 bool response = fEventManager->GetBool(fServerSocket);
319 fStatusLabel->SetText("Event marked");
320 cout<<"ADMIN PANEL -- Event marked succesfully"<<endl;
324 fStatusLabel->SetText("Couldn't mark this event");
325 cout<<"ADMIN PANEL -- Could not matk event"<<endl;
329 void AliStorageAdministratorPanelListEvents::onLoadButton()
331 int selectedEventNumber = fEventsList->GetSelected()-1;
332 int runNumber=fEventsListVector[selectedEventNumber].runNumber;
333 int eventNumber=fEventsListVector[selectedEventNumber].eventNumber;
336 struct serverRequestStruct *requestMessage = new struct serverRequestStruct;
337 struct eventStruct eventToLoad;
338 eventToLoad.runNumber = runNumber;
339 eventToLoad.eventNumber = eventNumber;
340 requestMessage->messageType = REQUEST_GET_EVENT;
341 requestMessage->event = eventToLoad;
343 fEventManager->Send(requestMessage,fServerSocket);
344 AliESDEvent *resultEvent = fEventManager->GetEvent(fServerSocket);
348 cout<<"ADMIN -- received event"<<endl;
349 fCurrentEvent = resultEvent;
353 cout<<"ADMIN -- received no event"<<endl;
359 void AliStorageAdministratorPanelListEvents::onCloseButton(){onExit();}
360 void AliStorageAdministratorPanelListEvents::CloseWindow(){onExit();}
362 void AliStorageAdministratorPanelListEvents::onExit()
364 cout<<"Quiting list events";
365 if(fInstance){delete fInstance;fInstance=0;}
366 cout<<" -- OK"<<endl;
369 Bool_t AliStorageAdministratorPanelListEvents::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
371 switch (GET_MSG(msg))
374 switch (GET_SUBMSG(msg))
379 case BUTTON_CLOSE:onCloseButton();break;
380 case BUTTON_GET_LIST:onGetListButton();break;
381 case BUTTON_MARK_EVENT:onMarkButton();break;
382 case BUTTON_LOAD_EVENT:onLoadButton();break;
395 void AliStorageAdministratorPanelListEvents::SetOfflineMode(Bool_t ison)
399 fProtonProtonCheckButton->SetDisabledAndSelected(ison);
400 fLeadLeadCheckButton->SetDisabledAndSelected(ison);
401 fTempCheckButton->SetDisabledAndSelected(ison);
402 fPermCheckButton->SetDisabledAndSelected(ison);
405 fProtonProtonCheckButton->SetEnabled(!ison);
406 fLeadLeadCheckButton->SetEnabled(!ison);
407 fTempCheckButton->SetEnabled(!ison);
408 fPermCheckButton->SetEnabled(!ison);
409 fProtonProtonCheckButton->SetOn();
410 fLeadLeadCheckButton->SetOn();
411 fTempCheckButton->SetOn();
412 fPermCheckButton->SetOn();
415 fRunNumberMinEntry->SetState(!ison);
416 fRunNumberMaxEntry->SetState(!ison);
417 fEventNumberMinEntry->SetState(!ison);
418 fEventNumberMaxEntry->SetState(!ison);
419 fMultiplicityMinEntry->SetState(!ison);
420 fMultiplicityMaxEntry->SetState(!ison);
422 fCloseButton->SetEnabled(!ison);
423 fGetListButton->SetEnabled(!ison);
424 fMarkButton->SetEnabled(!ison);
425 fLoadButton->SetEnabled(!ison);