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