CMS 3D CMS Logo

CmsShowEDI.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Core
4 // Class : CmsShowEDI
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: Joshua Berger
10 // Created: Mon Jun 23 15:48:11 EDT 2008
11 //
12 
13 // system include files
14 #include <iostream>
15 #include <sstream>
16 #include <sigc++/sigc++.h>
17 #include <boost/bind.hpp>
18 #include "TClass.h"
19 #include "TGFrame.h"
20 #include "TGTab.h"
21 #include "TGButton.h"
22 #include "TGLabel.h"
23 #include "TGString.h"
24 #include "TColor.h"
25 #include "TG3DLine.h"
26 #include "TGNumberEntry.h"
27 #include "TGTextEntry.h"
28 #include "TGTextView.h"
29 #include "TGLayout.h"
30 #include "TGFont.h"
31 #include "TEveManager.h"
32 #include "TGSlider.h"
33 #include "TGMsgBox.h"
34 #include "TGComboBox.h"
35 
36 // user include files
51 
52 //
53 // constants, enums and typedefs
55 
56 //
57 // static data member definitions
58 //
59 
60 //
61 // constructors and destructor
62 //
63 CmsShowEDI::CmsShowEDI(const TGWindow* p, UInt_t w, UInt_t h, FWSelectionManager* selMgr, FWColorManager* colorMgr)
64  : TGTransientFrame(gClient->GetDefaultRoot(), p, w, h),
65  m_item(nullptr),
66  m_validator(new FWExpressionValidator),
67  m_colorManager(colorMgr),
68  m_settersFrame(nullptr) {
69  m_selectionManager = selMgr;
70  SetCleanup(kDeepCleanup);
71 
73 
74  TGVerticalFrame* vf = new TGVerticalFrame(this);
75  AddFrame(vf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
76  FWDialogBuilder builder(vf, nullptr, true);
77 
78  builder.indent(0)
79  .expand(true, false)
80  .addLabel(" ", 14, 2, &m_objectLabel)
81  // .vSpacer()
82  .tabs(&m_tabs)
83  .beginTab("Graphics")
84  .indent(3)
85  .addLabel("Color", 8)
87  .expand(false)
88  .addHSeparator()
89  .addLabel("Opacity", 8)
91  .addHSeparator()
92  .addCheckbox("Visible", &m_isVisibleButton)
93  .addHSeparator()
94  .addLabel("Drawing order", 8)
95  .addTextButton("To back", &m_backButton)
96  .floatLeft()
97  .expand(false)
99  0.0, 4, TGNumberFormat::kNESInteger, FWEventItem::minLayerValue(), FWEventItem::maxLayerValue(), &m_layerEntry)
100  .expand(false)
101  .floatLeft()
102  .addTextButton("To front", &m_frontButton)
103  .expand(false)
104  .vSpacer()
105  .addHSeparator()
106  .endTab()
107  .beginTab("Filter")
108  .indent(3)
109  .addLabel("Expression", 8)
111  .floatLeft()
112  .addTextButton("Filter", &m_filterButton)
113  .expand(false)
115  .vSpacer()
116  .endTab()
117  .beginTab("Select")
118  .indent(3)
119  .addLabel("Expression", 8)
121  .addTextButton("Select", &m_selectButton)
122  .floatLeft()
123  .expand(false)
124  .addTextButton("Select all", &m_selectAllButton)
125  .expand(false)
126  .floatLeft()
127  .addTextButton("Unselect all", &m_deselectAllButton)
128  .expand(false)
129  .indent(3)
130  .addLabel("Color Selection", 8)
131  .addColorPicker(colorMgr, &m_cw)
132  .expand(false)
134  .vSpacer()
135  .endTab()
136  .beginTab("Data")
137  .indent(3)
138  .addLabel("Name:", 8)
139  .addTextEntry("None", &m_nameEntry)
140  .addLabel("Labels:", 8)
141  .addLabel("Type:", 8)
142  .addTextEntry("None", &m_typeEntry)
143  .addLabel("Module:", 8)
144  .addTextEntry("None", &m_moduleEntry)
145  .addLabel("Instance:", 8)
146  .addTextEntry("None", &m_instanceEntry)
147  .addLabel("Process:", 8)
148  .addTextEntry("None", &m_processEntry)
149  .addHSeparator()
150  .addTextButton("Remove collection", &m_removeButton)
151  .expand(false)
152  .vSpacer()
153  .endTab()
154  .untabs();
155 
156  m_filterError->SetForegroundColor(gVirtualX->GetPixel(kRed));
157  m_filterError->SetBackgroundColor(TGFrame::GetDefaultFrameBackground());
158  m_filterError->ChangeOptions(0);
159 
160  m_selectError->SetForegroundColor(gVirtualX->GetPixel(kRed));
161  m_selectError->SetBackgroundColor(TGFrame::GetDefaultFrameBackground());
162  m_selectError->ChangeOptions(0);
163 
166 
167  m_colorSelectWidget->Connect("ColorChosen(Color_t)", "CmsShowEDI", this, "changeItemColor(Color_t)");
168  m_cw->Connect("ColorChosen(Color_t)", "CmsShowEDI", this, "changeSelectionColor(Color_t)");
169  m_opacitySlider->Connect("PositionChanged(Int_t)", "CmsShowEDI", this, "changeItemOpacity(Int_t)");
170  m_isVisibleButton->Connect("Toggled(Bool_t)", "CmsShowEDI", this, "toggleItemVisible(Bool_t)");
171  m_filterExpressionEntry->Connect("ReturnPressed()", "CmsShowEDI", this, "runFilter()");
172  m_filterButton->Connect("Clicked()", "CmsShowEDI", this, "runFilter()");
173  m_selectExpressionEntry->Connect("ReturnPressed()", "CmsShowEDI", this, "runSelection()");
174  m_selectButton->Connect("Clicked()", "CmsShowEDI", this, "runSelection()");
175  m_removeButton->Connect("Clicked()", "CmsShowEDI", this, "removeItem()");
176  m_selectAllButton->Connect("Clicked()", "CmsShowEDI", this, "selectAll()");
177  m_deselectAllButton->Connect("Clicked()", "CmsShowEDI", this, "deselectAll()");
178  m_frontButton->Connect("Clicked()", "CmsShowEDI", this, "moveToFront()");
179  m_backButton->Connect("Clicked()", "CmsShowEDI", this, "moveToBack()");
180  m_layerEntry->Connect("ValueSet(Long_t)", "CmsShowEDI", this, "moveToLayer(Long_t)");
181 
182  TGCompositeFrame* cf = m_tabs->GetTabContainer(0);
183  m_settersFrame = new TGVerticalFrame(cf);
184  m_settersFrame->SetCleanup(kDeepCleanup);
185  cf->AddFrame(m_settersFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
186 
187  SetWindowName("Collection Controller");
188  MapSubwindows();
189  Resize(GetDefaultSize());
190  Layout();
191 
192  fillEDIFrame();
193 }
194 
195 // CmsShowEDI::CmsShowEDI(const CmsShowEDI& rhs)
196 // {
197 // // do actual copying here;
198 // }
199 
201  disconnectAll();
202  m_colorSelectWidget->Disconnect("ColorSelected(Pixel_t)", this, "changeItemColor(Pixel_t)");
203  m_cw->Disconnect("ColorSelected(Pixel_t)", this, "changeSelectionColor(Pixel_t)");
204  m_opacitySlider->Disconnect("PositionChanged(Int_t)", this, "changeItemColor");
205  m_isVisibleButton->Disconnect("Toggled(Bool_t)", this, "toggleItemVisible(Bool_t)");
206  m_filterExpressionEntry->Disconnect("ReturnPressed()", this, "runFilter()");
207  m_selectExpressionEntry->Disconnect("ReturnPressed()", this, "runSelection()");
208  m_filterButton->Disconnect("Clicked()", this, "runFilter()");
209  m_selectButton->Disconnect("Clicked()", this, "runSelection()");
210  m_selectAllButton->Disconnect("Clicked()", this, "selectAll()");
211  m_deselectAllButton->Disconnect("Clicked()", this, "deselectAll()");
212  m_removeButton->Disconnect("Clicked()", this, "removeItem()");
213  m_frontButton->Disconnect("Clicked()", this, "moveToFront()");
214  m_backButton->Disconnect("Clicked()", this, "moveToBack()");
215  m_layerEntry->Disconnect("ValueSet(Long_t)", this, "moveToLayer(Long_t)");
216  // delete m_objectLabel;
217  // delete m_colorSelectWidget;
218  // delete m_isVisibleButton;
219  delete m_validator;
220 }
221 
222 //
223 // assignment operators
224 //
225 // const CmsShowEDI& CmsShowEDI::operator=(const CmsShowEDI& rhs)
226 // {
227 // //An exception safe implementation is
228 // CmsShowEDI temp(rhs);
229 // swap(rhs);
230 //
231 // return *this;
232 // }
233 
234 //
235 // member functions
236 //
237 
239  if (!m_settersFrame->GetList()->IsEmpty()) {
240  // printf("remove FRAME \n");
241  TGFrameElement* el = (TGFrameElement*)m_settersFrame->GetList()->First();
242  TGFrame* f = el->fFrame;
243  f->UnmapWindow();
244  m_settersFrame->RemoveFrame(f);
245  f->DestroyWindow();
246  }
247 }
248 
250  FWEventItem* iItem = nullptr;
251  bool multipleCollections = false;
252  if (!m_selectionManager->selectedItems().empty()) {
253  if (m_selectionManager->selectedItems().size() == 1) {
254  iItem = *(m_selectionManager->selectedItems().begin());
255  } else {
256  multipleCollections = true;
257  }
258  }
259  //m_item can be zero because we had 0 or many collections selected
260  if (nullptr == m_item || iItem != m_item) {
261  disconnectAll();
262  m_item = iItem;
263  if (nullptr != m_item) {
265  m_objectLabel->SetText(iItem->name().c_str());
267  m_opacitySlider->SetPosition(100 - p.transparency());
268  m_isVisibleButton->SetDisabledAndSelected(p.isVisible());
269  m_validator->setType(edm::TypeWithDict(*(iItem->modelType()->GetTypeInfo())));
270  m_filterExpressionEntry->SetText(iItem->filterExpression().c_str());
271  m_filterError->Clear();
272  m_selectError->Clear();
273  m_nameEntry->SetText(iItem->name().c_str());
274  m_typeEntry->SetText(iItem->type()->GetName());
275  m_moduleEntry->SetText(iItem->moduleLabel().c_str());
276  m_instanceEntry->SetText(iItem->productInstanceLabel().c_str());
277  m_processEntry->SetText(iItem->processName().c_str());
278  // else m_isVisibleButton->SetState(kButtonDown, kFALSE);
279  m_colorSelectWidget->SetEnabled(kTRUE);
280  m_opacitySlider->SetEnabled(kTRUE);
281  m_isVisibleButton->SetEnabled(kTRUE);
282  m_filterExpressionEntry->SetEnabled(kTRUE);
283  m_selectExpressionEntry->SetEnabled(kTRUE);
284  m_filterButton->SetEnabled(kTRUE);
285  m_selectButton->SetEnabled(kTRUE);
286  m_selectAllButton->SetEnabled(kTRUE);
287  m_deselectAllButton->SetEnabled(kTRUE);
288  m_cw->SetColorByIndex(p.color(), kFALSE);
289  m_cw->SetEnabled(kTRUE);
290  m_removeButton->SetEnabled(kTRUE);
292  m_layerEntry->SetState(kTRUE);
295  m_modelChangedConn = m_item->changed_.connect(boost::bind(&CmsShowEDI::updateFilter, this));
296  // m_selectionChangedConn = m_selectionManager->selectionChanged_.connect(boost::bind(&CmsShowEDI::updateSelection, this));
298 
299  clearPBFrame();
301  } else if (multipleCollections) {
302  std::ostringstream s;
303  s << m_selectionManager->selectedItems().size() << " Collections Selected";
304  m_objectLabel->SetText(s.str().c_str());
305  }
306 
307  Resize(GetDefaultSize());
308  Layout();
309  }
310 }
311 
313  Int_t chosen = 0;
314  std::string message("This action will remove the ");
315  message += m_item->name();
316  message +=
317  " collection from the display."
318  "\nIf you wish to return the collection you would have to use the 'Add Collection' window.";
319  new TGMsgBox(gClient->GetDefaultRoot(),
320  this,
321  "Remove Collection Confirmation",
322  message.c_str(),
323  kMBIconExclamation,
324  kMBCancel | kMBApply,
325  &chosen);
326  if (kMBApply == chosen) {
327  m_item->destroy();
328  m_item = nullptr;
329  //make sure the ROOT global editor does not try to use this
330  gEve->EditElement(nullptr);
331  gEve->Redraw3D();
332  }
333 }
334 
336  //std::cout<<"Updating display"<<std::endl;
338  m_colorSelectWidget->SetColorByIndex(props.color(), kFALSE);
339  m_opacitySlider->SetPosition(100 - props.transparency());
340  m_isVisibleButton->SetState(props.isVisible() ? kButtonDown : kButtonUp, kFALSE);
341 }
342 
344  m_backButton->SetEnabled(!m_item->isInBack());
345  m_frontButton->SetEnabled(!m_item->isInFront());
346  m_layerEntry->SetIntNumber(m_item->layer());
347 }
349  m_item->moveToBack();
351 }
353  m_item->moveToFront();
355 }
357  m_item->moveToLayer(static_cast<Int_t>(m_layerEntry->GetIntNumber()));
359 }
360 
362 
364  m_objectLabel->SetText("No Collection Selected");
365  clearPBFrame();
366  if (nullptr != m_item) {
367  m_displayChangedConn.disconnect();
368  m_modelChangedConn.disconnect();
369  m_destroyedConn.disconnect();
370  m_item = nullptr;
372  m_opacitySlider->SetPosition(100);
373  m_isVisibleButton->SetDisabledAndSelected(kTRUE);
374  m_filterExpressionEntry->SetText(nullptr);
375  m_selectExpressionEntry->SetText(nullptr);
376  m_nameEntry->SetText(nullptr);
377  m_typeEntry->SetText(nullptr);
378  m_moduleEntry->SetText(nullptr);
379  m_instanceEntry->SetText(nullptr);
380  m_processEntry->SetText(nullptr);
381  // else m_isVisibleButton->SetState(kButtonDown, kFALSE);
382  m_colorSelectWidget->SetEnabled(kFALSE);
383  m_opacitySlider->SetEnabled(kFALSE);
384 
385  m_isVisibleButton->SetEnabled(kFALSE);
386  m_filterExpressionEntry->SetEnabled(kFALSE);
387  m_filterButton->SetEnabled(kFALSE);
388  m_selectExpressionEntry->SetEnabled(kFALSE);
389  m_selectButton->SetEnabled(kFALSE);
390  m_selectAllButton->SetEnabled(kFALSE);
391  m_deselectAllButton->SetEnabled(kFALSE);
392  m_removeButton->SetEnabled(kFALSE);
393  m_backButton->SetEnabled(kFALSE);
394  m_frontButton->SetEnabled(kFALSE);
395  m_layerEntry->SetIntNumber(0);
396  m_layerEntry->SetState(kFALSE);
397  m_layerEntry->GetNumberEntry()->SetEnabled(kFALSE);
398  m_layerEntry->GetButtonUp()->SetEnabled(kFALSE);
399  m_layerEntry->GetButtonDown()->SetEnabled(kFALSE);
400  }
401 }
402 
409 void CmsShowEDI::changeItemColor(Color_t color) {
411  changeProperties.setColor(color);
412  m_item->setDefaultDisplayProperties(changeProperties);
413  m_cw->SetColorByIndex(color, kFALSE);
414 }
415 
419  changeProperties.setIsVisible(on);
420  m_item->setDefaultDisplayProperties(changeProperties);
421 }
422 
430 void CmsShowEDI::changeItemOpacity(Int_t opacity) {
432  changeProperties.setTransparency(100 - opacity);
433  m_item->setDefaultDisplayProperties(changeProperties);
434 }
435 
437  const std::string filter(m_filterExpressionEntry->GetText());
438  if (m_item != nullptr) {
439  try {
440  m_filterError->Clear();
442  } catch (const FWExpressionException& e) {
443  m_filterError->AddLine(e.what().c_str());
444  m_filterError->Update();
445  if (e.column() > -1) {
446  m_filterExpressionEntry->SetCursorPosition(e.column());
447  }
448  }
449  }
450 }
451 
453  FWModelExpressionSelector selector;
455  if (m_item != nullptr) {
456  try {
457  m_selectError->Clear();
458  //NOTE call clearModelSelectionLeaveItem so that the item does not get deselected
459  // just for safety use a copy of the pointer to m_item
462 
463  selector.select(item, selection, TColor::GetColor(m_cw->GetColor()));
464  } catch (const FWExpressionException& e) {
465  m_selectError->AddLine(e.what().c_str());
466  m_selectError->Update();
467  if (e.column() > -1) {
468  m_selectExpressionEntry->SetCursorPosition(e.column());
469  }
470  }
471  }
472 }
473 
475  FWChangeSentry sentry(*(m_item->changeManager()));
476  for (int i = 0; i < static_cast<int>(m_item->size()); i++) {
477  m_item->select(i);
478  }
479 }
481  FWChangeSentry sentry(*(m_item->changeManager()));
482  for (int i = 0; i < static_cast<int>(m_item->size()); i++) {
483  m_item->unselect(i);
484  }
485 }
486 
488  FWChangeSentry sentry(*(m_item->changeManager()));
489  const std::set<FWModelId>& ss = m_item->selectionManager()->selected();
491  dp.setColor(c);
492  for (std::set<FWModelId>::const_iterator i = ss.begin(); i != ss.end(); ++i) {
493  m_item->setDisplayProperties(i->index(), dp);
494  }
495 }
496 
497 void CmsShowEDI::show(FWDataCategories iToView) { m_tabs->SetTab(iToView); }
498 
499 /* Called by FWGUIManager when change background/colorset. */
501  if (m_item) {
504  m_cw->SetColorByIndex(p.color(), kFALSE);
505  }
506 }
void populateFrame(TGCompositeFrame *frame)
const std::set< FWModelId > & selected() const
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
FWProxyBuilderConfiguration * getConfig() const
Definition: FWEventItem.h:150
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:403
void fillEDIFrame()
Definition: CmsShowEDI.cc:249
void setColor(Color_t iColor)
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:123
sigc::connection m_displayChangedConn
Definition: CmsShowEDI.h:124
const std::string & what() const
TGHSlider * m_opacitySlider
Definition: CmsShowEDI.h:108
void setType(const edm::TypeWithDict &)
void destroy() const
Definition: FWEventItem.cc:493
void colorSetChanged()
Definition: CmsShowEDI.cc:500
void moveToBack()
Definition: FWEventItem.cc:299
const double w
Definition: UKUtility.cc:23
void moveToFront()
Definition: FWEventItem.cc:278
FWColorSelect * m_cw
Definition: CmsShowEDI.h:116
TGCheckButton * m_isVisibleButton
Definition: CmsShowEDI.h:109
FWGUIValidatingTextEntry * m_filterExpressionEntry
Definition: CmsShowEDI.h:110
void moveToLayer(int layer)
Definition: FWEventItem.cc:320
void SetColorByIndex(Color_t iColor)
FWDialogBuilder & endTab(void)
const std::string & name() const
Definition: FWEventItem.cc:435
FWDialogBuilder & addTextButton(const char *text, TGTextButton **out=nullptr)
FWDialogBuilder & addHSlider(size_t size, TGHSlider **out=nullptr)
void setDisplayProperties(int iIndex, const FWDisplayProperties &) const
Definition: FWEventItem.cc:247
#define nullptr
selection
main part
Definition: corrVsCorr.py:100
const std::string & filterExpression() const
Definition: FWEventItem.cc:491
FWDialogBuilder & addTextView(const char *defaultText=nullptr, TGTextView **out=nullptr)
FWItemChangeSignal defaultDisplayPropertiesChanged_
Definition: FWEventItem.h:190
TGLabel * m_objectLabel
Definition: CmsShowEDI.h:102
void unselect(int iIndex) const
Definition: FWEventItem.cc:215
TGTab * m_tabs
Definition: CmsShowEDI.h:101
FWItemChangeSignal goingToBeDestroyed_
Definition: FWEventItem.h:197
void disconnectAll()
Definition: CmsShowEDI.cc:363
const std::string & processName() const
Definition: FWEventItem.cc:444
const std::set< FWEventItem * > & selectedItems() const
FWDialogBuilder & addLabel(const char *text, size_t fontSize=12, size_t weight=0, TGLabel **out=nullptr)
TGTextButton * m_selectAllButton
Definition: CmsShowEDI.h:114
void moveToLayer(Long_t)
Definition: CmsShowEDI.cc:356
FWDialogBuilder & addCheckbox(const char *text, TGCheckButton **out=nullptr)
void updateFilter()
Definition: CmsShowEDI.cc:361
static int maxLayerValue()
Definition: FWEventItem.cc:40
FWDialogBuilder & vSpacer(size_t size=0)
void moveToFront()
Definition: CmsShowEDI.cc:352
TGCompositeFrame * m_settersFrame
Definition: CmsShowEDI.h:133
Color_t color() const
int layer() const
Definition: FWEventItem.cc:405
FWDialogBuilder & untabs(void)
TGTextEntry * m_instanceEntry
Definition: CmsShowEDI.h:120
void removeItem()
Definition: CmsShowEDI.cc:312
Char_t transparency() const
void setDefaultDisplayProperties(const FWDisplayProperties &)
Definition: FWEventItem.cc:138
const std::string & productInstanceLabel() const
Definition: FWEventItem.cc:442
void updateDisplay()
Definition: CmsShowEDI.cc:335
void changeItemColor(Color_t color)
Definition: CmsShowEDI.cc:409
TGNumberEntry * m_layerEntry
Definition: CmsShowEDI.h:106
void moveToBack()
Definition: CmsShowEDI.cc:348
const TClass * type() const
Definition: FWEventItem.cc:437
TGTextButton * m_deselectAllButton
Definition: CmsShowEDI.h:115
void setValidator(FWValidatorBase *)
TGTextButton * m_backButton
Definition: CmsShowEDI.h:105
double f[11][100]
TGTextEntry * m_moduleEntry
Definition: CmsShowEDI.h:119
sigc::connection m_destroyedConn
Definition: CmsShowEDI.h:126
FWDialogBuilder & addHSeparator(size_t horizontalPadding=4, size_t verticalPadding=3)
static int minLayerValue()
Definition: FWEventItem.cc:38
FWDialogBuilder & tabs(TGTab **out)
void changeItemOpacity(Int_t opacity)
Definition: CmsShowEDI.cc:430
FWSelectionManager * selectionManager() const
Definition: FWEventItem.h:124
FWDialogBuilder & addValidatingTextEntry(const char *defaultText, FWGUIValidatingTextEntry **out)
TGTextView * m_selectError
Definition: CmsShowEDI.h:129
FWDialogBuilder & addTextEntry(const char *defaultText, TGTextEntry **out)
TGTextButton * m_removeButton
Definition: CmsShowEDI.h:103
bool isInBack() const
returns true if item is behind all other items
Definition: FWEventItem.cc:420
size_t size() const
Definition: FWEventItem.cc:457
void select(FWEventItem *iItem, const std::string &iExpression, Color_t iColor=-1) const
FWDialogBuilder & floatLeft(size_t spacing=3)
FWExpressionValidator * m_validator
Definition: CmsShowEDI.h:130
bool isInFront() const
returns true if item is in front of all other items
Definition: FWEventItem.cc:407
void setFilterExpression(const std::string &)
Definition: FWEventItem.cc:180
TGTextView * m_filterError
Definition: CmsShowEDI.h:128
TGTextEntry * m_processEntry
Definition: CmsShowEDI.h:121
FWDialogBuilder & expand(size_t expandX=true, size_t expandY=false)
void setTransparency(Char_t transparency)
sigc::signal< void, const FWSelectionManager & > itemSelectionChanged_
FWColorSelect * m_colorSelectWidget
Definition: CmsShowEDI.h:107
void runFilter()
Definition: CmsShowEDI.cc:436
FWModelChangeSignal changed_
Definition: FWEventItem.h:178
TGTextButton * m_filterButton
Definition: CmsShowEDI.h:112
CmsShowEDI(const TGWindow *p=nullptr, UInt_t w=1, UInt_t h=1, FWSelectionManager *selMgr=nullptr, FWColorManager *colorMgr=nullptr)
Definition: CmsShowEDI.cc:63
const TClass * modelType() const
Definition: FWEventItem.cc:464
FWSelectionManager * m_selectionManager
Definition: CmsShowEDI.h:100
TGTextEntry * m_typeEntry
Definition: CmsShowEDI.h:118
void toggleItemVisible(Bool_t on=kTRUE)
Definition: CmsShowEDI.cc:417
void select(int iIndex) const
Definition: FWEventItem.cc:224
FWDialogBuilder & beginTab(const char *label)
void runSelection()
Definition: CmsShowEDI.cc:452
void deselectAll()
Definition: CmsShowEDI.cc:480
FWEventItem * m_item
Definition: CmsShowEDI.h:122
void setIsVisible(bool iSet)
~CmsShowEDI() override
Definition: CmsShowEDI.cc:200
sigc::connection m_modelChangedConn
Definition: CmsShowEDI.h:125
void updateLayerControls()
Definition: CmsShowEDI.cc:343
FWGUIValidatingTextEntry * m_selectExpressionEntry
Definition: CmsShowEDI.h:111
TGTextEntry * m_nameEntry
Definition: CmsShowEDI.h:117
FWDialogBuilder & indent(int left=2, int right=-1)
FWDialogBuilder & addNumberEntry(float defaultValue, size_t digits, TGNumberFormat::EStyle style, int min, int max, TGNumberEntry **out)
FWDialogBuilder & addColorPicker(const FWColorManager *manager, FWColorSelect **out=nullptr)
void changeSelectionColor(Color_t color)
Definition: CmsShowEDI.cc:487
TGTextButton * m_frontButton
Definition: CmsShowEDI.h:104
void clearPBFrame()
Definition: CmsShowEDI.cc:238
const std::string & moduleLabel() const
Definition: FWEventItem.cc:441
void show(FWDataCategories)
Definition: CmsShowEDI.cc:497
TGTextButton * m_selectButton
Definition: CmsShowEDI.h:113
void selectAll()
Definition: CmsShowEDI.cc:474