]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Alieve/AliEveTRDLoaderManager.cxx
Put all classes in Alieve/ sub-module out of the Alieve namespace and
[u/mrichter/AliRoot.git] / EVE / Alieve / AliEveTRDLoaderManager.cxx
CommitLineData
d810d0de 1// $Id$
2// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
9#include "AliEveTRDLoaderManager.h"
10#include "AliEveTRDLoader.h"
11#include "AliEveTRDLoaderImp.h"
edf0c4a0 12
84aff7a4 13#include <TEveManager.h>
edf0c4a0 14
15#include <TGLabel.h>
16#include <TGButton.h>
17#include <TGComboBox.h>
18#include <TGListBox.h>
19#include <TGListTree.h>
20#include <TGString.h>
21#include <TGToolTip.h>
22#include <TClonesArray.h>
23
24#include "AliLog.h"
d810d0de 25
edf0c4a0 26using namespace std;
27
28
d810d0de 29ClassImp(AliEveTRDLoaderManager)
30ClassImp(AliEveTRDLoaderManagerEditor)
edf0c4a0 31
32///////////////////////////////////////////////////////////
d810d0de 33///////////// AliEveTRDLoaderManager //////////////
edf0c4a0 34///////////////////////////////////////////////////////////
35
36
37//________________________________________________________
d810d0de 38AliEveTRDLoaderManager::AliEveTRDLoaderManager(const Text_t* n, const Text_t* t) : TEveElementList(n, t)
edf0c4a0 39{
40
41}
42
43//________________________________________________________
d810d0de 44AliEveTRDLoaderManager::~AliEveTRDLoaderManager()
edf0c4a0 45{
46
47}
48
49//________________________________________________________
d810d0de 50void AliEveTRDLoaderManager::Add(Int_t type, const Text_t *name, const Text_t *title)
edf0c4a0 51{
52 //Info("Add()", Form("type %d, name %s, title %s", type, name, title));
d810d0de 53 AliEveTRDLoader *trdl = 0x0;
edf0c4a0 54 switch(type){
55 case 0:
d810d0de 56 //fChildren.push_back(new AliEveTRDLoaderSim(name, title));
57 gEve->AddElement(trdl = new AliEveTRDLoaderSim(name, title), this);
58 ((AliEveTRDLoaderSim*)trdl)->FindListTreeItem(gEve->GetListTree())->SetTipText(title);
edf0c4a0 59 break;
60 case 1:
61 case 2:
62 case 3:
d810d0de 63 //fChildren.push_back(new AliEveTRDLoader(name, title));
64 gEve->AddElement(trdl = new AliEveTRDLoader(name, title), this);
84aff7a4 65 trdl->FindListTreeItem(gEve->GetListTree())->SetTipText(title);
d810d0de 66 trdl->SetDataType((TRDDataTypes)type);
edf0c4a0 67 break;
68 case 4:
69 case 5:
d810d0de 70 //fChildren.push_back(new AliEveTRDLoaderRaw(name, title));
71 gEve->AddElement(trdl = new AliEveTRDLoaderRaw(name, title), this);
72 ((AliEveTRDLoaderRaw*)trdl)->FindListTreeItem(gEve->GetListTree())->SetTipText(title);
73 trdl->SetDataType((TRDDataTypes)type);
edf0c4a0 74 break;
75 }
76
84aff7a4 77 gEve->Redraw3D();
edf0c4a0 78}
79
80
81
82//________________________________________________________
d810d0de 83void AliEveTRDLoaderManager::Paint(Option_t *option)
edf0c4a0 84{
85 List_i ichmb = fChildren.begin();
86 while(ichmb != fChildren.end()){
d810d0de 87 (dynamic_cast<AliEveTRDLoader*>(*ichmb))->Paint(option);
edf0c4a0 88 ichmb++;
89 }
90}
91
92//________________________________________________________
d810d0de 93void AliEveTRDLoaderManager::Remove(Int_t entry)
edf0c4a0 94{
d810d0de 95 //printf("AliEveTRDLoaderManager::Remove(%d)\n", entry);
edf0c4a0 96 List_i it = fChildren.begin();
97 for(int i=0; i<entry; i++) it++;
84aff7a4 98 gEve->RemoveElement((*it), this);
edf0c4a0 99 fChildren.erase(it);
100}
101
102///////////////////////////////////////////////////////////
d810d0de 103///////////// AliEveTRDLoaderManagerEditor //////////////
edf0c4a0 104///////////////////////////////////////////////////////////
105
106//________________________________________________________
d810d0de 107AliEveTRDLoaderManagerEditor::AliEveTRDLoaderManagerEditor(const TGWindow* p, Int_t width, Int_t height, UInt_t options, Pixel_t back) : TGedFrame(p, width, height, options | kVerticalFrame, back)
edf0c4a0 108{
d810d0de 109 MakeTitle("AliEveTRDLoaderManager");
edf0c4a0 110
111// gClient->GetColorByName("#ffffff", bg);
112// ChangeBackground(bg);
113
114 // control frame - always there
115 TGHorizontalFrame *fHorizontalFrame539 = new TGHorizontalFrame(this, 300, 26, kHorizontalFrame);//, bg);
116
117 TGLabel *fLabel546 = new TGLabel(fHorizontalFrame539,"Register Loader",TGLabel::GetDefaultGC()(),TGLabel::GetDefaultFontStruct(),kChildFrame);//, bg);
118 fLabel546->SetTextJustify(36);
119 fHorizontalFrame539->AddFrame(fLabel546, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2));
120
121 // combo box
122 fSelector = new TGComboBox(fHorizontalFrame539,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground);
123 fSelector->AddEntry("MC (gAlice) ",0);
124 fSelector->AddEntry("Digits ",1);
125 fSelector->AddEntry("Clusters ",2);
126 fSelector->AddEntry("Tracklets ",3);
127 fSelector->AddEntry("Raw (ROOT) ",4);
128 fSelector->AddEntry("Raw (DATE) ",5);
129 fSelector->Resize(136,22);
130 fHorizontalFrame539->AddFrame(fSelector, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2));
131
132 fAdd = new TGTextButton(fHorizontalFrame539, "Add");
133 fAdd->SetTextJustify(36);
134 fAdd->Resize(31,22);
135 fAdd->SetToolTipText("Add selected loader to list");
d810d0de 136 fAdd->Connect("Clicked()", "AliEveTRDLoaderManagerEditor", this, "Add()");
edf0c4a0 137 fHorizontalFrame539->AddFrame(fAdd, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2));
138 AddFrame(fHorizontalFrame539, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2));
139
140 fGroupFrame = 0x0;
141 fRemove = 0x0;
142}
143
144//________________________________________________________
d810d0de 145AliEveTRDLoaderManagerEditor::~AliEveTRDLoaderManagerEditor()
edf0c4a0 146{
147
148}
149
150
151//_________________________________________________________
d810d0de 152void AliEveTRDLoaderManagerEditor::Add()
edf0c4a0 153{
154 TGTextLBEntry *entry = (TGTextLBEntry*)fSelector->GetSelectedEntry();
155 if(!entry){
156 AliWarning("Select first the loader type that you want to use from the drop down list.");
157 return;
158 }
159
160 if(!fGroupFrame){
161 // "TRD Loaders" group frame
162 fGroupFrame = new TGGroupFrame(this,"TRD Loaders",kVerticalFrame,TGGroupFrame::GetDefaultGC()(),TGGroupFrame::GetDefaultFontStruct());//, bg);
163 fGroupFrame->SetLayoutManager(new TGVerticalLayout(fGroupFrame));
164 fGroupFrame->Resize(300,128);
165 AddFrame(fGroupFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 2,2,2,2));
166
167 fRemove = new TClonesArray("TGTextButton", 3);
168 }
169
170 char *title[] = {"MC loader", "Single file loader", "Raw data loader"};
171 // char *color[] = {"#ff0000", "#0000ff", "#59d454"};
172 int id = fSelector->GetSelected(), type;
173 switch(id){
174 case 1:
175 case 2:
176 case 3:
177 type = 1;
178 break;
179 case 4:
180 case 5:
181 type = 2;
182 break;
183 default:
184 type = 0;
185 break;
186 }
187
188
189 // horizontal frame
190 TGHorizontalFrame *fHorizontalFrame = new TGHorizontalFrame(fGroupFrame, 264, 26, kHorizontalFrame);//, bg);
191
192// TGFont *ufont = gClient->GetFont("-*-helvetica-(null)-*-*-0-*-*-*-*-*-*-*");
193// TGGC *uGC; // will reflect user GC changes
194// // graphics context changes
195// GCValues_t vall717;
196// vall717.fMask = kGCForeground | kGCBackground | kGCFillStyle | kGCFont | kGCGraphicsExposures;
197// gClient->GetColorByName(color[type], vall717.fForeground);
198// gClient->GetColorByName("#c0c0c0", vall717.fBackground);
199// vall717.fFillStyle = kFillSolid;
200// vall717.fFont = ufont->GetFontHandle();
201// vall717.fGraphicsExposures = kFALSE;
202// uGC = gClient->GetGC(&vall717, kTRUE);
203
204 TGLabel *fLabel717 = new TGLabel(fHorizontalFrame, entry->GetText()->GetString()/*, uGC->GetGC(), ufont->GetFontStruct(), kChildFrame*/);//, bg);
205 fLabel717->SetTextJustify(36);
206 fHorizontalFrame->AddFrame(fLabel717, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
207
208
209 Int_t nbutton = fM->fChildren.size();
210 fRemoveButton = new((*fRemove)[nbutton]) TGTextButton(fHorizontalFrame, "Remove", nbutton);
211 fRemoveButton->SetTextJustify(36);
212 fRemoveButton->Resize(53,22);
d810d0de 213 fRemoveButton->Connect("Clicked()", "AliEveTRDLoaderManagerEditor", this, Form("Remove(=%d)", nbutton));
edf0c4a0 214 fRemoveButton->SetToolTipText(Form("Remove %s Loader", entry->GetText()->GetString()));
215 fHorizontalFrame->AddFrame(fRemoveButton, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2));
216
217 fGroupFrame->AddFrame(fHorizontalFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
218
219
220 MapSubwindows();
221 Resize(GetDefaultSize());
222 MapWindow();
223
224 fM->Add(id, entry->GetText()->GetString(), title[type]);
225}
226
227
228//_________________________________________________________
d810d0de 229void AliEveTRDLoaderManagerEditor::Remove(Int_t entry)
edf0c4a0 230{
231 TIterator *it = fGroupFrame->GetList()->MakeIterator();
232 int ientry = 0;
233 while(/*TGFrame *f=(TGFrame*)*/it->Next()){
234 //printf("%s\n", f->IsA()->GetName());
235 if(entry == ientry){
236 //fGroupFrame->RemoveFrame(f);
237 break;
238 }
239 ientry++;
240 }
241
242
243 MapSubwindows();
244 Resize(GetDefaultSize());
245 MapWindow();
246
247 //fM->Remove(entry);
248}
249
250//_________________________________________________________
d810d0de 251void AliEveTRDLoaderManagerEditor::SetModel(TObject* obj)
edf0c4a0 252{
d810d0de 253 fM = dynamic_cast<AliEveTRDLoaderManager*>(obj);
edf0c4a0 254}
255