]>
Commit | Line | Data |
---|---|---|
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 * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
fd31e9de | 9 | |
d810d0de | 10 | #include "AliEveTRDLoaderManager.h" |
11 | #include "AliEveTRDLoader.h" | |
12 | #include "AliEveTRDLoaderImp.h" | |
edf0c4a0 | 13 | |
84aff7a4 | 14 | #include <TEveManager.h> |
edf0c4a0 | 15 | |
16 | #include <TGLabel.h> | |
17 | #include <TGButton.h> | |
18 | #include <TGComboBox.h> | |
19 | #include <TGListBox.h> | |
a15e6d7d | 20 | //#include <TGListTree.h> |
21 | //#include <TGString.h> | |
22 | //#include <TGToolTip.h> | |
edf0c4a0 | 23 | #include <TClonesArray.h> |
24 | ||
25 | #include "AliLog.h" | |
d810d0de | 26 | |
d810d0de | 27 | ClassImp(AliEveTRDLoaderManager) |
28 | ClassImp(AliEveTRDLoaderManagerEditor) | |
edf0c4a0 | 29 | |
30 | /////////////////////////////////////////////////////////// | |
fd31e9de | 31 | ///////// AliEveTRDLoaderManager ////////////// |
edf0c4a0 | 32 | /////////////////////////////////////////////////////////// |
33 | ||
fd31e9de | 34 | //______________________________________________________________________________ |
35 | AliEveTRDLoaderManager::AliEveTRDLoaderManager(const Text_t* n, const Text_t* t) : | |
36 | TEveElementList(n, t) | |
edf0c4a0 | 37 | { |
a15e6d7d | 38 | // Constructor. |
edf0c4a0 | 39 | } |
40 | ||
fd31e9de | 41 | //______________________________________________________________________________ |
42 | void AliEveTRDLoaderManager::Add(Int_t type, const Text_t *name, const Text_t *title) | |
edf0c4a0 | 43 | { |
a15e6d7d | 44 | // Add something. |
45 | ||
fd31e9de | 46 | AliEveTRDLoader *trdl = 0x0; |
47 | switch(type){ | |
6983e87a | 48 | case AliEveTRDLoader::kTRDHits: |
49 | case AliEveTRDLoader::kTRDDigits: | |
50 | case AliEveTRDLoader::kTRDClusters: | |
51 | case AliEveTRDLoader::kTRDTracklets: | |
52 | AddElement(trdl = new AliEveTRDLoader(name, title)); | |
53 | break; | |
54 | case AliEveTRDLoader::kTRDRawRoot: | |
55 | case AliEveTRDLoader::kTRDRawDate: | |
56 | AddElement(trdl = new AliEveTRDLoaderRaw(name, title)); | |
57 | break; | |
58 | default: | |
59 | AddElement(trdl = new AliEveTRDLoaderSim(name, title)); | |
60 | break; | |
fd31e9de | 61 | } |
6983e87a | 62 | trdl->SetDataType(type); |
fd31e9de | 63 | |
64 | gEve->Redraw3D(); | |
edf0c4a0 | 65 | } |
66 | ||
67 | ||
fd31e9de | 68 | //______________________________________________________________________________ |
d810d0de | 69 | void AliEveTRDLoaderManager::Paint(Option_t *option) |
edf0c4a0 | 70 | { |
a15e6d7d | 71 | // Paint object. |
72 | ||
90ae0503 | 73 | AliEveTRDLoader *loader(NULL); |
fd31e9de | 74 | List_i ichmb = fChildren.begin(); |
75 | while(ichmb != fChildren.end()){ | |
90ae0503 | 76 | if((loader = dynamic_cast<AliEveTRDLoader*>(*ichmb))) loader->Paint(option); |
fd31e9de | 77 | ichmb++; |
78 | } | |
edf0c4a0 | 79 | } |
80 | ||
fd31e9de | 81 | //______________________________________________________________________________ |
82 | void AliEveTRDLoaderManager::Remove(Int_t entry) | |
edf0c4a0 | 83 | { |
a15e6d7d | 84 | // Remove something. |
85 | ||
fd31e9de | 86 | //printf("AliEveTRDLoaderManager::Remove(%d)\n", entry); |
87 | List_i it = fChildren.begin(); | |
88 | for(int i=0; i<entry; i++) it++; | |
89 | gEve->RemoveElement((*it), this); | |
90 | fChildren.erase(it); | |
edf0c4a0 | 91 | } |
92 | ||
93 | /////////////////////////////////////////////////////////// | |
fd31e9de | 94 | ////////// AliEveTRDLoaderManagerEditor /////////// |
edf0c4a0 | 95 | /////////////////////////////////////////////////////////// |
96 | ||
fd31e9de | 97 | //______________________________________________________________________________ |
98 | AliEveTRDLoaderManagerEditor:: | |
99 | AliEveTRDLoaderManagerEditor(const TGWindow* p, Int_t width, Int_t height, | |
100 | UInt_t options, Pixel_t back) : | |
101 | TGedFrame(p, width, height, options | kVerticalFrame, back), | |
102 | fM(0), fSelector(0), fAdd(0), fRemoveButton(0), fGroupFrame(0), fRemove(0) | |
edf0c4a0 | 103 | { |
a15e6d7d | 104 | // Constructor. |
105 | ||
fd31e9de | 106 | MakeTitle("AliEveTRDLoaderManager"); |
107 | ||
108 | // control frame - always there | |
109 | TGHorizontalFrame *fHorizontalFrame539 = new TGHorizontalFrame(this, 300, 26, kHorizontalFrame); | |
110 | ||
111 | TGLabel *fLabel546 = new TGLabel(fHorizontalFrame539,"Register Loader",TGLabel::GetDefaultGC()(),TGLabel::GetDefaultFontStruct(),kChildFrame); | |
112 | fLabel546->SetTextJustify(36); | |
113 | fHorizontalFrame539->AddFrame(fLabel546, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2)); | |
114 | ||
115 | // combo box | |
116 | fSelector = new TGComboBox(fHorizontalFrame539,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground); | |
6983e87a | 117 | fSelector->AddEntry("MC (gAlice) ", AliEveTRDLoader::kTRDHits | AliEveTRDLoader::kTRDDigits | AliEveTRDLoader::kTRDClusters); |
118 | fSelector->AddEntry("Hits ", AliEveTRDLoader::kTRDHits); | |
119 | fSelector->AddEntry("Digits ", AliEveTRDLoader::kTRDDigits); | |
120 | fSelector->AddEntry("Clusters ", AliEveTRDLoader::kTRDClusters); | |
121 | fSelector->AddEntry("Tracklets ", AliEveTRDLoader::kTRDTracklets); | |
122 | fSelector->AddEntry("Raw (ROOT) ", AliEveTRDLoader::kTRDRawRoot); | |
123 | fSelector->AddEntry("Raw (DATE) ", AliEveTRDLoader::kTRDRawDate); | |
fd31e9de | 124 | fSelector->Resize(136,22); |
125 | fHorizontalFrame539->AddFrame(fSelector, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2)); | |
8948756b | 126 | //fSelector->SetToolTipText("Select TRD data loader and add it to the list.\nThe loader can be removed by clicking the \"Remove\" button"); |
127 | fSelector->Connect("Selected(char*)", "AliEveTRDLoaderManagerEditor", this, "Add(char*)"); | |
fd31e9de | 128 | AddFrame(fHorizontalFrame539, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2)); |
129 | ||
130 | fGroupFrame = 0; | |
131 | fRemove = 0; | |
edf0c4a0 | 132 | } |
133 | ||
edf0c4a0 | 134 | |
fd31e9de | 135 | //______________________________________________________________________________ |
8948756b | 136 | void AliEveTRDLoaderManagerEditor::Add(Char_t *name) |
edf0c4a0 | 137 | { |
a15e6d7d | 138 | // Slot to add something. |
fd31e9de | 139 | if(!fGroupFrame){ |
140 | // "TRD Loaders" group frame | |
141 | fGroupFrame = new TGGroupFrame(this,"TRD Loaders",kVerticalFrame,TGGroupFrame::GetDefaultGC()(),TGGroupFrame::GetDefaultFontStruct()); | |
142 | fGroupFrame->SetLayoutManager(new TGVerticalLayout(fGroupFrame)); | |
143 | fGroupFrame->Resize(300,128); | |
144 | AddFrame(fGroupFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 2,2,2,2)); | |
145 | ||
146 | fRemove = new TClonesArray("TGTextButton", 3); | |
147 | } | |
148 | ||
fd31e9de | 149 | |
150 | // horizontal frame | |
151 | TGHorizontalFrame *fHorizontalFrame = new TGHorizontalFrame(fGroupFrame, 264, 26, kHorizontalFrame); | |
152 | ||
8948756b | 153 | TGLabel *fLabel717 = new TGLabel(fHorizontalFrame, name); |
fd31e9de | 154 | fLabel717->SetTextJustify(36); |
155 | fHorizontalFrame->AddFrame(fLabel717, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2)); | |
156 | ||
157 | ||
158 | Int_t nbutton = fM->fChildren.size(); | |
159 | fRemoveButton = new((*fRemove)[nbutton]) TGTextButton(fHorizontalFrame, "Remove", nbutton); | |
160 | fRemoveButton->SetTextJustify(36); | |
161 | fRemoveButton->Resize(53,22); | |
162 | fRemoveButton->Connect("Clicked()", "AliEveTRDLoaderManagerEditor", this, Form("Remove(=%d)", nbutton)); | |
8948756b | 163 | fRemoveButton->SetToolTipText(Form("Remove %s Loader", name)); |
fd31e9de | 164 | fHorizontalFrame->AddFrame(fRemoveButton, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2)); |
165 | ||
166 | fGroupFrame->AddFrame(fHorizontalFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2)); | |
167 | ||
168 | ||
169 | MapSubwindows(); | |
170 | Resize(GetDefaultSize()); | |
171 | MapWindow(); | |
172 | ||
a6e0ebfe | 173 | const char *title[] = {"MC loader", "Single file loader", "Raw data loader"}; |
6983e87a | 174 | // char *color[] = {"#ff0000", "#0000ff", "#59d454"}; |
175 | int id = fSelector->GetSelected(), type; | |
176 | switch(id){ | |
177 | case AliEveTRDLoader::kTRDHits: | |
178 | case AliEveTRDLoader::kTRDDigits: | |
179 | case AliEveTRDLoader::kTRDClusters: | |
180 | case AliEveTRDLoader::kTRDTracklets: | |
181 | type = 1; | |
182 | break; | |
183 | case AliEveTRDLoader::kTRDRawRoot: | |
184 | case AliEveTRDLoader::kTRDRawDate: | |
185 | type = 2; | |
186 | break; | |
187 | default: | |
188 | type = 0; | |
189 | break; | |
190 | } | |
8948756b | 191 | fM->Add(id, name, title[type]); |
edf0c4a0 | 192 | } |
193 | ||
194 | ||
fd31e9de | 195 | //______________________________________________________________________________ |
d810d0de | 196 | void AliEveTRDLoaderManagerEditor::Remove(Int_t entry) |
edf0c4a0 | 197 | { |
a15e6d7d | 198 | // Slot to remove something. |
199 | ||
fd31e9de | 200 | TIterator *it = fGroupFrame->GetList()->MakeIterator(); |
201 | int ientry = 0; | |
202 | while(/*TGFrame *f=(TGFrame*)*/it->Next()){ | |
203 | //printf("%s\n", f->IsA()->GetName()); | |
204 | if(entry == ientry){ | |
205 | //fGroupFrame->RemoveFrame(f); | |
206 | break; | |
207 | } | |
208 | ientry++; | |
209 | } | |
210 | ||
211 | ||
212 | MapSubwindows(); | |
213 | Resize(GetDefaultSize()); | |
214 | MapWindow(); | |
215 | ||
216 | //fM->Remove(entry); | |
edf0c4a0 | 217 | } |
218 | ||
fd31e9de | 219 | //______________________________________________________________________________ |
d810d0de | 220 | void AliEveTRDLoaderManagerEditor::SetModel(TObject* obj) |
edf0c4a0 | 221 | { |
a15e6d7d | 222 | // Set model object. |
223 | ||
fd31e9de | 224 | fM = dynamic_cast<AliEveTRDLoaderManager*>(obj); |
edf0c4a0 | 225 | } |
226 |