1 #include "AliStorageAdministratorPanelMarkEvent.h"
2 #include "AliStorageTypes.h"
13 AliStorageAdministratorPanelMarkEvent *AliStorageAdministratorPanelMarkEvent::fInstance=0;
15 ClassImp(AliStorageAdministratorPanelMarkEvent);
17 #define WINDOWS_WIDTH 200
18 #define WINDOWS_HEIGHT 200
30 AliStorageAdministratorPanelMarkEvent::AliStorageAdministratorPanelMarkEvent() :
31 TGMainFrame(gClient->GetRoot(), 400, 400),
38 fEventManager = new AliStorageEventManager();
42 AliStorageAdministratorPanelMarkEvent::~AliStorageAdministratorPanelMarkEvent()
44 cout<<"ADMIN PANEL -- Mark Window descructor called";
45 // if(fStatusLabel)delete fStatusLabel;
46 // if(fRunNumberEntry)delete fRunNumberEntry;
47 // if(fEventNumberEntry)delete fEventNumberEntry;
48 //if(fServerSocket)delete fServerSocket;
50 cout<<" --- OK"<<endl;
53 AliStorageAdministratorPanelMarkEvent* AliStorageAdministratorPanelMarkEvent::GetInstance()
55 if(!fInstance){fInstance = new AliStorageAdministratorPanelMarkEvent();}
59 void AliStorageAdministratorPanelMarkEvent::SetSocket(socket_t *socket)
61 fServerSocket = socket;
64 void AliStorageAdministratorPanelMarkEvent::InitWindow()
66 SetCleanup(kDeepCleanup);
68 AddFrame(new TGLabel(this,"Run number:"),new TGLayoutHints(kLHintsLeft));
70 fRunNumberEntry = new TGNumberEntry(this,
74 TGNumberFormat::kNESInteger,
75 TGNumberFormat::kNEAPositive,
76 TGNumberFormat::kNELNoLimits);
77 AddFrame(fRunNumberEntry,new TGLayoutHints(kLHintsLeft));
79 AddFrame(new TGLabel(this,"Event number:"),new TGLayoutHints(kLHintsLeft));
81 fEventNumberEntry = new TGNumberEntry(this,
85 TGNumberFormat::kNESInteger,
86 TGNumberFormat::kNEAPositive,
87 TGNumberFormat::kNELNoLimits);
88 AddFrame(fEventNumberEntry,new TGLayoutHints(kLHintsLeft));
90 fStatusLabel = new TGLabel(this,"");
91 AddFrame(fStatusLabel,new TGLayoutHints(kLHintsExpandX | kLHintsLeft));
93 AddFrame(new TGTextButton(this,"Close",BUTTON_CLOSE),
94 new TGLayoutHints(kLHintsLeft));
96 AddFrame(new TGTextButton(this,"Mark event",BUTTON_MARK),
97 new TGLayoutHints(kLHintsRight));
100 SetWindowName("Mark Event");
102 Resize(WINDOWS_WIDTH,WINDOWS_HEIGHT);
109 void AliStorageAdministratorPanelMarkEvent::onMarkButton()
114 //get run and event number from TGNumberEntries
115 runNumber=fRunNumberEntry->GetIntNumber();
116 eventNumber=fEventNumberEntry->GetIntNumber();
118 struct serverRequestStruct *requestMessage = new struct serverRequestStruct;
119 struct eventStruct mark;
120 mark.runNumber = runNumber;
121 mark.eventNumber = eventNumber;
122 requestMessage->messageType = REQUEST_MARK_EVENT;
123 requestMessage->event = mark;
125 fEventManager->Send(requestMessage,fServerSocket);
127 message_t *response = new message_t();
128 fServerSocket->recv(response);
129 char *result = (char*)response->data();
131 if(!strcmp("true",result))
133 fStatusLabel->SetText("Event marked");
134 cout<<"ADMIN PANEL -- Event marked succesfully"<<endl;
138 fStatusLabel->SetText("Couldn't mark this event");
139 cout<<"ADMIN PANEL -- Could not matk event"<<endl;
143 void AliStorageAdministratorPanelMarkEvent::onCloseButton(){onExit();}
144 void AliStorageAdministratorPanelMarkEvent::CloseWindow(){onExit();}
146 void AliStorageAdministratorPanelMarkEvent::onExit()
148 cout<<"Quiting mark event";
149 if(fInstance){delete fInstance;fInstance=0;}
150 cout<<" -- OK"<<endl;
153 Bool_t AliStorageAdministratorPanelMarkEvent::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
155 switch (GET_MSG(msg))
158 switch (GET_SUBMSG(msg))
163 case BUTTON_CLOSE:onCloseButton();break;
164 case BUTTON_MARK:onMarkButton();break;