CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
FWTableWidget Class Reference

#include <Fireworks/TableWidget/interface/FWTableWidget.h>

Inheritance diagram for FWTableWidget:

Public Member Functions

FWTabularWidgetbody ()
 
void buttonPressedInRowHeader (Int_t row, Int_t column, Event_t *event, Int_t relX, Int_t relY)
 
void buttonReleasedInBody (Int_t row, Int_t column, Event_t *event, Int_t, Int_t)
 
void buttonReleasedInHeader (Int_t row, Int_t column, Event_t *event, Int_t, Int_t)
 
void buttonReleasedInRowHeader (Int_t row, Int_t column, Event_t *event, Int_t relX, Int_t relY)
 
void cellClicked (Int_t iRow, Int_t iColumn, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
 
void childrenEvent (Event_t *)
 
 ClassDef (FWTableWidget, 0)
 
void Clicked ()
 
void columnClicked (Int_t iColumn, Int_t iButton, Int_t iKeyMod)
 
void dataChanged ()
 
bool descendingSort () const
 
void disableGrowInWidth ()
 
void forceLayout ()
 
 FWTableWidget (FWTableManagerBase *iManager, const TGWindow *p=0)
 
TGDimension GetDefaultSize () const
 
virtual void MoveResize (Int_t x, Int_t y, UInt_t w=0, UInt_t h=0)
 
virtual Bool_t ProcessMessage (Long_t msg, Long_t parm1, Long_t parm2)
 
virtual void Resize (UInt_t w, UInt_t h)
 
void rowClicked (Int_t iRow, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
 
void SetBackgroundColor (Pixel_t)
 
void SetHeaderBackgroundColor (Pixel_t)
 
void SetHeaderForegroundColor (Pixel_t)
 
void SetLineSeparatorColor (Pixel_t)
 
void sort (UInt_t iColumn, bool iDescendingSort)
 
int sortedColumn () const
 
virtual ~FWTableWidget ()
 

Protected Member Functions

virtual void DoRedraw ()
 

Private Member Functions

bool handleResize (UInt_t w, UInt_t h)
 

Private Attributes

FWTabularWidgetm_body
 
FWTableManagerBasem_bodyTable
 
bool m_descendingSort
 
bool m_forceLayout
 
FWTabularWidgetm_header
 
TGGC * m_headerBackground
 
TGGC * m_headerForeground
 
FWTableManagerBasem_headerTable
 
TGHScrollBar * m_hSlider
 
TGGC * m_lineSeparator
 
FWTabularWidgetm_rowHeader
 
FWTableManagerBasem_rowHeaderTable
 
bool m_showingHSlider
 
bool m_showingVSlider
 
int m_sortedColumn
 
TGVScrollBar * m_vSlider
 

Detailed Description

Description: ROOT widget for representing data in a tabular form where the data is accessed via a FWTableManagerBase

Usage: This widget creates a table made up of cells where the representation of the cells is controlled by the FWTableManagerBase instance passed to the FWTableWidget's constructor. If the data for the FWTableManagerBase changes, the view is automatically updated. See the documentation for FWTableManagerBase for further details.

Definition at line 35 of file FWTableWidget.h.

Constructor & Destructor Documentation

FWTableWidget::FWTableWidget ( FWTableManagerBase iManager,
const TGWindow *  p = 0 
)

Definition at line 40 of file FWTableWidget.cc.

References FWTableManagerBase::cellDataIsSortable(), kColOptions, kRowOptions, m_body, m_bodyTable, m_header, m_headerTable, m_hSlider, m_rowHeader, m_rowHeaderTable, m_vSlider, FWTabularWidget::setWidthOfTextInColumns(), and FWTabularWidget::widthOfTextInColumns().

40  :
41 TGCompositeFrame(p),
42  m_bodyTable(iManager),
43  m_headerTable(iManager->hasLabelHeaders()?new FWAdapterHeaderTableManager(iManager): static_cast<FWTableManagerBase*>(0)),
44  m_rowHeaderTable(iManager->hasRowHeaders()?new FWAdapterRowHeaderTableManager(iManager): static_cast<FWTableManagerBase*>(0)),
45  m_header(0),
46  m_rowHeader(0),
49  m_sortedColumn(-1),
55 {
56  SetLayoutManager( new TGTableLayout(this,3,3) );
57 
58  if(0!=m_headerTable) {
60  AddFrame(m_header, new TGTableLayoutHints(1,2,0,1,kLHintsTop|kLHintsLeft|kRowOptions));
61  if (m_bodyTable->cellDataIsSortable()) m_header->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInHeader(Int_t,Int_t,Event_t*,Int_t,Int_t)");
62  }
63  m_body = new FWTabularWidget(iManager,this,GetWhiteGC()());
64  //m_body->SetBackgroundColor(kWidgetColor);
65  AddFrame(m_body, new TGTableLayoutHints(1,2,1,2,kLHintsTop|kLHintsLeft|kRowOptions|kColOptions));
66  m_body->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInBody(Int_t,Int_t,Event_t*,Int_t,Int_t)");
67 
68  //set sizes
69  std::vector<unsigned int> columnWidths = m_body->widthOfTextInColumns();
70  if(0!=m_header) {
71  std::vector<unsigned int> headerWidths = m_header->widthOfTextInColumns();
72  for(std::vector<unsigned int>::iterator it = columnWidths.begin(), itEnd=columnWidths.end(), itHeader=headerWidths.begin();
73  it != itEnd;
74  ++it,++itHeader) {
75  if(*itHeader > *it) {
76  *it = *itHeader;
77  }
78  }
79  }
80  if(0!=m_header) {
81  m_header->setWidthOfTextInColumns(columnWidths);
82  }
83  m_body->setWidthOfTextInColumns(columnWidths);
84  if(m_rowHeaderTable) {
85  m_rowHeader = new FWTabularWidget(m_rowHeaderTable,this, GetWhiteGC()());
86  //m_rowHeader->SetBackgroundColor(kWidgetColor);
87 
88  AddFrame(m_rowHeader, new TGTableLayoutHints(0,1,1,2,kLHintsTop|kLHintsLeft|kColOptions));
89  m_rowHeader->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInBody(Int_t,Int_t,Event_t*,Int_t,Int_t)");
90  m_rowHeader->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInRowHeader(Int_t,Int_t,Event_t*,Int_t,Int_t)");
92  }
93 
94  m_hSlider = new TGHScrollBar(this);
95  AddFrame(m_hSlider, new TGTableLayoutHints(1,2,2,3,kRowOptions));
96  m_hSlider->Connect("ProcessedEvent(Event_t*)", "FWTableWidget", this, "childrenEvent(Event_t *)");
97  m_vSlider = new TGVScrollBar(this);
98  m_vSlider->SetSmallIncrement(12);
99  AddFrame(m_vSlider, new TGTableLayoutHints(2,3,1,2,kColOptions));
100  m_vSlider->Connect("ProcessedEvent(Event_t*)", "FWTableWidget", this, "childrenEvent(Event_t *)");
101  MapSubwindows();
102  Layout();
103  //HideFrame(m_hSlider);
104  //HideFrame(m_vSlider);
105  m_hSlider->Associate(this);
106  m_vSlider->Associate(this);
107 
108  m_hSlider->SetEditDisabled(kEditDisable | kEditDisableGrab | kEditDisableBtnEnable);
109  m_vSlider->SetEditDisabled(kEditDisable | kEditDisableGrab | kEditDisableBtnEnable);
110  m_bodyTable->Connect("dataChanged()","FWTableWidget",this,"dataChanged()");
111 }
virtual bool cellDataIsSortable() const
FWTableManagerBase * m_bodyTable
TGVScrollBar * m_vSlider
TGGC * m_headerBackground
virtual bool hasLabelHeaders() const
void setWidthOfTextInColumns(const std::vector< unsigned int > &)
FWTabularWidget * m_body
TGGC * m_headerForeground
TGGC * m_lineSeparator
const std::vector< unsigned int > & widthOfTextInColumns() const
static const UInt_t kRowOptions
FWTabularWidget * m_rowHeader
static const UInt_t kColOptions
volatile std::atomic< bool > shutdown_flag false
FWTableManagerBase * m_headerTable
FWTabularWidget * m_header
FWTableManagerBase * m_rowHeaderTable
TGHScrollBar * m_hSlider
FWTableWidget::~FWTableWidget ( )
virtual

Definition at line 118 of file FWTableWidget.cc.

References m_headerBackground, m_headerForeground, and m_lineSeparator.

119 {
120  if(0!=m_headerBackground) {
121  gClient->GetResourcePool()->GetGCPool()->FreeGC(m_headerBackground->GetGC());
122  }
123  if(0!= m_headerForeground) {
124  gClient->GetResourcePool()->GetGCPool()->FreeGC(m_headerForeground->GetGC());
125  }
126 
127  if(0!= m_lineSeparator) {
128  gClient->GetResourcePool()->GetGCPool()->FreeGC(m_lineSeparator->GetGC());
129  }
130 
131 }
TGGC * m_headerBackground
TGGC * m_headerForeground
TGGC * m_lineSeparator

Member Function Documentation

FWTabularWidget* FWTableWidget::body ( )
inline

Definition at line 92 of file FWTableWidget.h.

References m_body.

Referenced by FWPathsPopup::FWPathsPopup(), FWGeometryTableViewBase::postConst(), and FWPathsPopup::postEvent().

92 { return m_body; }
FWTabularWidget * m_body
void FWTableWidget::buttonPressedInRowHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  relX,
Int_t  relY 
)

Definition at line 484 of file FWTableWidget.cc.

References FWTableManagerBase::buttonReleasedInRowHeader(), and m_bodyTable.

485 {
486  Int_t btn = event->fCode;
487  if(btn != kButton1 && btn != kButton3) {return;}
488  m_bodyTable->buttonReleasedInRowHeader(row, event, relX, relY);
489 }
FWTableManagerBase * m_bodyTable
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual void buttonReleasedInRowHeader(Int_t row, Event_t *event, Int_t relX, Int_t relY)
void FWTableWidget::buttonReleasedInBody ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  iRelX,
Int_t  iRelY 
)

Definition at line 354 of file FWTableWidget.cc.

References cellClicked(), m_body, m_bodyTable, m_vSlider, AlCaHLTBitMon_ParallelJobs::p, rowClicked(), and FWTableManagerBase::unsortedRowNumber().

355 {
356  Int_t btn = event->fCode;
357  Int_t keyMod = event->fState;
358  if(btn == kButton5){
359  //should scroll down
360  if(m_vSlider) {
361  Int_t p = m_vSlider->GetPosition();
362  Int_t mx = m_vSlider->GetRange();
363  p+=m_vSlider->GetSmallIncrement();
364  if(p>mx){ p=mx;}
365  m_vSlider->SetPosition(p);
366  }
367  return;
368  }
369  if(btn == kButton4){
370  //should scroll up
371  if(m_vSlider) {
372  Int_t p = m_vSlider->GetPosition();
373  p -=m_vSlider->GetSmallIncrement();
374  if(0>p) {p=0;}
375  m_vSlider->SetPosition(p);
376  }
377  return;
378  }
379  if(btn != kButton1 && btn != kButton3) {return;}
380  if(row>=-1 and row < m_bodyTable->numberOfRows()) {
381  Int_t globalX,globalY;
382  Window_t childdum;
383  gVirtualX->TranslateCoordinates(m_body->GetId(),
384  gClient->GetDefaultRoot()->GetId(),
385  event->fX,event->fY,globalX,globalY,childdum);
386  cellClicked(m_bodyTable->unsortedRowNumber(row), column, btn, keyMod, globalX, globalY);
387  rowClicked(m_bodyTable->unsortedRowNumber(row), btn,keyMod,globalX,globalY);
388  }
389 }
FWTableManagerBase * m_bodyTable
TGVScrollBar * m_vSlider
FWTabularWidget * m_body
virtual int unsortedRowNumber(int iSortedRowNumber) const =0
when passed the index to the sorted order of the rows it returns the original row number from the und...
void cellClicked(Int_t iRow, Int_t iColumn, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
void rowClicked(Int_t iRow, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
void FWTableWidget::buttonReleasedInHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  ,
Int_t   
)

Definition at line 338 of file FWTableWidget.cc.

References columnClicked(), m_descendingSort, m_sortedColumn, and sort().

339 {
340  Int_t btn = event->fCode;
341  Int_t keyMod = event->fState;
342  //Int_t keyMod = event->fState;
343  if (btn == kButton1 || btn == kButton3) {
344  if(m_sortedColumn==column) {
345  sort(column, !m_descendingSort);
346  } else {
347  sort(column,true);
348  }
349  }
350  columnClicked(column, btn, keyMod);
351 }
void sort(UInt_t iColumn, bool iDescendingSort)
void columnClicked(Int_t iColumn, Int_t iButton, Int_t iKeyMod)
void FWTableWidget::buttonReleasedInRowHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  relX,
Int_t  relY 
)

Definition at line 491 of file FWTableWidget.cc.

References FWTableManagerBase::buttonReleasedInRowHeader(), and m_bodyTable.

492 {
493  Int_t btn = event->fCode;
494  if(btn != kButton1 && btn != kButton3) {return;}
495  m_bodyTable->buttonReleasedInRowHeader(row, event, relX, relY);
496 }
FWTableManagerBase * m_bodyTable
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual void buttonReleasedInRowHeader(Int_t row, Event_t *event, Int_t relX, Int_t relY)
void FWTableWidget::cellClicked ( Int_t  iRow,
Int_t  iColumn,
Int_t  iButton,
Int_t  iKeyMod,
Int_t  iGlobalX,
Int_t  iGlobalY 
)

Definition at line 392 of file FWTableWidget.cc.

References mps_alisetup::args.

Referenced by buttonReleasedInBody().

393 {
394  keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
395  //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
396  Long_t args[6];
397  args[0]=(Long_t)row;
398  args[1]=(Long_t)column;
399  args[2]=(Long_t)btn;
400  args[3]=(Long_t)keyMod;
401  args[4]=(Long_t)iGlobalX;
402  args[5]=(Long_t)iGlobalY;
403  Emit("cellClicked(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t)",args);
404 }
void FWTableWidget::childrenEvent ( Event_t *  )

Definition at line 407 of file FWTableWidget.cc.

References Clicked().

408 {
409  Clicked();
410 }
FWTableWidget::ClassDef ( FWTableWidget  ,
 
)
void FWTableWidget::Clicked ( )

Definition at line 413 of file FWTableWidget.cc.

Referenced by childrenEvent().

414 {
415  Emit("Clicked()");
416 }
void FWTableWidget::columnClicked ( Int_t  iColumn,
Int_t  iButton,
Int_t  iKeyMod 
)

Definition at line 433 of file FWTableWidget.cc.

References mps_alisetup::args.

Referenced by buttonReleasedInHeader().

434 {
435  keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
436  //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
437  Long_t args[3];
438  args[0]=(Long_t)column;
439  args[1]=(Long_t)btn;
440  args[2]=(Long_t)keyMod;
441  Emit("columnClicked(Int_t,Int_t,Int_t)",args);
442 }
void FWTableWidget::dataChanged ( void  )

Definition at line 445 of file FWTableWidget.cc.

References FWTabularWidget::dataChanged(), handleResize(), m_body, m_forceLayout, m_header, m_rowHeader, FWTabularWidget::setWidthOfTextInColumns(), and FWTabularWidget::widthOfTextInColumns().

Referenced by FWTableViewTableManager::implSort().

446 {
447  bool needs_layout = m_forceLayout; m_forceLayout = false;
448 
449  m_body->dataChanged();
450  if(m_rowHeader) {
453  }
454  //set sizes
455  std::vector<unsigned int> columnWidths = m_body->widthOfTextInColumns();
456  if(m_header) {
457  // reset header back to its internal max rather than the last width
458  m_header->dataChanged();
459  std::vector<unsigned int> headerWidths = m_header->widthOfTextInColumns();
460  for(std::vector<unsigned int>::iterator it = columnWidths.begin(), itEnd=columnWidths.end(), itHeader=headerWidths.begin();
461  it != itEnd;
462  ++it,++itHeader) {
463  if(*itHeader > *it) {
464  *it = *itHeader;
465  }
466  }
467  m_header->setWidthOfTextInColumns(columnWidths);
468  }
469  m_body->setWidthOfTextInColumns(columnWidths);
470 
471  //this updates sliders to match our new data
472  bool layoutDoneByhandleResize = handleResize(GetWidth(), GetHeight());
473  if (needs_layout && ! layoutDoneByhandleResize)
474  {
475  Layout();
476  }
477  gClient->NeedRedraw(m_body);
478  if (m_header) gClient->NeedRedraw(m_header);
479  if (m_rowHeader) gClient->NeedRedraw(m_rowHeader);
480 
481 }
bool handleResize(UInt_t w, UInt_t h)
void setWidthOfTextInColumns(const std::vector< unsigned int > &)
FWTabularWidget * m_body
const std::vector< unsigned int > & widthOfTextInColumns() const
FWTabularWidget * m_rowHeader
FWTabularWidget * m_header
bool FWTableWidget::descendingSort ( ) const
inline

Definition at line 90 of file FWTableWidget.h.

References m_descendingSort.

Referenced by FWTriggerTableView::addTo(), and FWTableView::addTo().

90 { return m_descendingSort; }
void FWTableWidget::disableGrowInWidth ( )
void FWTableWidget::DoRedraw ( )
protectedvirtual

Definition at line 527 of file FWTableWidget.cc.

528 {
529  // override virtual TGFrame::DoRedraw() to prevent call of gVirtualX->ClearArea();
530 }
void FWTableWidget::forceLayout ( )
inline
TGDimension FWTableWidget::GetDefaultSize ( ) const

Definition at line 502 of file FWTableWidget.cc.

References FWTabularWidget::GetDefaultSize(), m_body, m_header, m_hSlider, m_rowHeader, and m_vSlider.

503 {
504  TGDimension returnValue;
505  if(m_header){
506  returnValue.fHeight += m_header->GetDefaultHeight();
507  }
508  if(m_rowHeader) {
509  returnValue.fWidth += m_rowHeader->GetDefaultWidth();
510  }
511  returnValue = returnValue + m_body->GetDefaultSize();
512  returnValue.fHeight += m_hSlider->GetDefaultHeight();
513  returnValue.fWidth += m_vSlider->GetDefaultWidth();
514 
515  return returnValue;
516 }
TGVScrollBar * m_vSlider
FWTabularWidget * m_body
TGDimension GetDefaultSize() const
FWTabularWidget * m_rowHeader
FWTabularWidget * m_header
TGHScrollBar * m_hSlider
bool FWTableWidget::handleResize ( UInt_t  w,
UInt_t  h 
)
private

Definition at line 227 of file FWTableWidget.cc.

References def, FWTabularWidget::GetDefaultSize(), m_body, m_header, m_hSlider, m_rowHeader, m_showingHSlider, m_showingVSlider, and m_vSlider.

Referenced by dataChanged(), MoveResize(), and Resize().

228 {
229  //std::cout <<"Resize"<<std::endl;
230  bool redoLayout=false;
231 
232  TGDimension def = m_body->GetDefaultSize();
233  UInt_t fullWidth = def.fWidth;
234  if(m_rowHeader) {
235  fullWidth += m_rowHeader->GetDefaultSize().fWidth;
236  }
237 
238  UInt_t headerHeight = 0;
239  if(m_header) {
240  headerHeight = m_header->GetHeight();
241  }
242  UInt_t fullHeight = def.fHeight + headerHeight;
243 
244  UInt_t sBarWidth = (h < fullHeight) ? m_vSlider->GetWidth() : 0;
245  UInt_t sBarHeight = (w < fullWidth) ? m_hSlider->GetHeight() : 0;
246  if (sBarWidth == 0 && sBarHeight > 0 && h < fullHeight + sBarHeight)
247  sBarWidth = m_vSlider->GetWidth();
248  else if (sBarHeight == 0 && sBarWidth > 0 && h < fullWidth + sBarWidth)
249  sBarHeight = m_hSlider->GetHeight();
250  fullWidth += sBarWidth;
251  fullHeight += sBarHeight;
252 
253  if(w < fullWidth) {
254  if(!m_showingHSlider) {
255  ShowFrame(m_hSlider);
256  redoLayout=true;
257  m_showingHSlider=true;
258  }
259  m_hSlider->SetRange(fullWidth,w);
260  } else {
261  if(m_showingHSlider) {
262  HideFrame(m_hSlider);
263  m_hSlider->SetPosition(0);
264  m_showingHSlider = false;
265  redoLayout=true;
266  }
267  }
268 
269  if(h < fullHeight) {
270  if(!m_showingVSlider) {
271  ShowFrame(m_vSlider);
272  m_showingVSlider=true;
273  redoLayout=true;
274  }
275  m_vSlider->SetRange(fullHeight,h);
276  } else {
277  if(m_showingVSlider) {
278  HideFrame(m_vSlider);
279  m_vSlider->SetPosition(0);
280  m_showingVSlider = false;
281  redoLayout=true;
282  }
283  }
284  if(redoLayout) {
285  Layout();
286  }
287 
288  return redoLayout;
289 }
const double w
Definition: UKUtility.cc:23
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
TGVScrollBar * m_vSlider
FWTabularWidget * m_body
TGDimension GetDefaultSize() const
FWTabularWidget * m_rowHeader
FWTabularWidget * m_header
JetCorrectorParameters::Definitions def
Definition: classes.h:6
TGHScrollBar * m_hSlider
void FWTableWidget::MoveResize ( Int_t  x,
Int_t  y,
UInt_t  w = 0,
UInt_t  h = 0 
)
virtual

Definition at line 292 of file FWTableWidget.cc.

References handleResize().

293 {
294  //std::cout <<"MoveResize"<<std::endl;
295  if(w != GetWidth() || h != GetHeight()) {
296  handleResize(w,h);
297  }
298  TGCompositeFrame::MoveResize(x,y,w,h);
299 }
const double w
Definition: UKUtility.cc:23
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
bool handleResize(UInt_t w, UInt_t h)
Bool_t FWTableWidget::ProcessMessage ( Long_t  msg,
Long_t  parm1,
Long_t  parm2 
)
virtual

Definition at line 302 of file FWTableWidget.cc.

References m_body, m_header, m_rowHeader, FWTabularWidget::setHorizontalOffset(), and FWTabularWidget::setVerticalOffset().

303 {
304  // Handle message generated by the canvas scrollbars.
305 
306  switch (GET_MSG(msg)) {
307  case kC_HSCROLL:
308  switch (GET_SUBMSG(msg)) {
309  case kSB_SLIDERTRACK:
310  case kSB_SLIDERPOS:
311  m_body->setHorizontalOffset(parm1);
312  if(m_header) {
314  }
315  break;
316  }
317  break;
318 
319  case kC_VSCROLL:
320  switch (GET_SUBMSG(msg)) {
321  case kSB_SLIDERTRACK:
322  case kSB_SLIDERPOS:
323  m_body->setVerticalOffset(parm1);
324  if(m_rowHeader) {
326  }
327  break;
328  }
329  break;
330 
331  default:
332  break;
333  }
334  return kTRUE;
335 }
FWTabularWidget * m_body
void setHorizontalOffset(UInt_t)
FWTabularWidget * m_rowHeader
FWTabularWidget * m_header
void setVerticalOffset(UInt_t)
void FWTableWidget::Resize ( UInt_t  w,
UInt_t  h 
)
virtual

Definition at line 220 of file FWTableWidget.cc.

References handleResize().

Referenced by FWCollectionSummaryWidget::toggleShowHide().

221 {
222  handleResize(w,h);
223  TGCompositeFrame::Resize(w,h);
224 }
const double w
Definition: UKUtility.cc:23
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
bool handleResize(UInt_t w, UInt_t h)
void FWTableWidget::rowClicked ( Int_t  iRow,
Int_t  iButton,
Int_t  iKeyMod,
Int_t  iGlobalX,
Int_t  iGlobalY 
)

This signal is emitted if the mouse button is 'clicked' while the cursor was over a row. Arguments: iRow: the unsorted row number (natural ordering) of the row clicked iButton: the ROOT button value for the click event (e.g. says which button used) iKeyMod: the ROOT key modifier value for the click event (e.g. says if a keyboard key was being held) iGlobalX: the X coordinate of the click in global coordinates iGlobalY: the Y coordinate of the click in global coordinates

Definition at line 419 of file FWTableWidget.cc.

References mps_alisetup::args.

Referenced by buttonReleasedInBody().

420 {
421  keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
422  //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
423  Long_t args[5];
424  args[0]=(Long_t)row;
425  args[1]=(Long_t)btn;
426  args[2]=(Long_t)keyMod;
427  args[3]=(Long_t)iGlobalX;
428  args[4]=(Long_t)iGlobalY;
429  Emit("rowClicked(Int_t,Int_t,Int_t,Int_t,Int_t)",args);
430 }
void FWTableWidget::SetBackgroundColor ( Pixel_t  iColor)

Definition at line 163 of file FWTableWidget.cc.

References hcaldqm::fClient, m_body, m_header, m_rowHeader, and m_rowHeaderTable.

Referenced by FWCollectionSummaryWidget::colorTable(), FWGUIEventDataAdder::createWindow(), FWPathsPopup::FWPathsPopup(), FWGeometryTableViewBase::postConst(), FWTableView::resetColors(), FWTriggerTableView::setBackgroundColor(), FWTableView::setBackgroundColor(), and FWGeometryTableViewBase::setBackgroundColor().

164 {
165  TGFrame::SetBackgroundColor(iColor);
166  if(m_rowHeaderTable) {
167  m_rowHeader->SetBackgroundColor(iColor);
168  fClient->NeedRedraw(m_rowHeader);
169  }
170  if(m_header) {
171  m_header->SetBackgroundColor(iColor);
172  fClient->NeedRedraw(m_header);
173  }
174  m_body->SetBackgroundColor(iColor);
175  fClient->NeedRedraw(m_body);
176  fClient->NeedRedraw(this);
177 }
FWTabularWidget * m_body
FWTabularWidget * m_rowHeader
FWTabularWidget * m_header
FWTableManagerBase * m_rowHeaderTable
void FWTableWidget::SetHeaderBackgroundColor ( Pixel_t  iColor)

Definition at line 180 of file FWTableWidget.cc.

References m_header, m_headerBackground, FWTabularWidget::setBackgroundAreaContext(), and lumiQTWidget::t.

Referenced by FWGUIEventDataAdder::createWindow(), FWPathsPopup::FWPathsPopup(), FWTableView::FWTableView(), FWTriggerTableView::FWTriggerTableView(), FWGeometryTableViewBase::postConst(), and FWCollectionSummaryWidget::toggleShowHide().

181 {
182  if(0==m_headerBackground) {
183  GCValues_t t = *(gClient->GetResourcePool()->GetFrameGC()->GetAttributes());
184  m_headerBackground = gClient->GetResourcePool()->GetGCPool()->GetGC(&t,kTRUE);
185  }
186  m_headerBackground->SetForeground(iColor);
187  if(0!=m_header) {
189  }
190 }
TGGC * m_headerBackground
void setBackgroundAreaContext(GContext_t iContext)
FWTabularWidget * m_header
void FWTableWidget::SetHeaderForegroundColor ( Pixel_t  iColor)

Definition at line 192 of file FWTableWidget.cc.

References m_header, m_headerForeground, FWTabularWidget::setLineContext(), and lumiQTWidget::t.

193 {
194  if(0==m_headerForeground) {
195  GCValues_t t = *(gClient->GetResourcePool()->GetFrameGC()->GetAttributes());
196  m_headerForeground = gClient->GetResourcePool()->GetGCPool()->GetGC(&t,kTRUE);
197  }
198  m_headerForeground->SetForeground(iColor);
199  if(0!=m_header) {
201  }
202 }
void setLineContext(GContext_t iContext)
TGGC * m_headerForeground
FWTabularWidget * m_header
void FWTableWidget::SetLineSeparatorColor ( Pixel_t  iColor)

Definition at line 205 of file FWTableWidget.cc.

References m_body, m_lineSeparator, m_rowHeader, FWTabularWidget::setLineContext(), and lumiQTWidget::t.

Referenced by FWCollectionSummaryWidget::colorTable(), FWGUIEventDataAdder::createWindow(), FWPathsPopup::FWPathsPopup(), FWGeometryTableViewBase::postConst(), FWTableView::resetColors(), FWTriggerTableView::setBackgroundColor(), and FWGeometryTableViewBase::setBackgroundColor().

206 {
207  if(0==m_lineSeparator) {
208  GCValues_t t = *(gClient->GetResourcePool()->GetFrameGC()->GetAttributes());
209  m_lineSeparator = gClient->GetResourcePool()->GetGCPool()->GetGC(&t,kTRUE);
210  }
211  m_lineSeparator->SetForeground(iColor);
213  if(m_rowHeader) {
215  }
216 }
void setLineContext(GContext_t iContext)
FWTabularWidget * m_body
TGGC * m_lineSeparator
FWTabularWidget * m_rowHeader
void FWTableWidget::sort ( UInt_t  iColumn,
bool  iDescendingSort 
)

Sorts the rows of data in the table based on values in column iColumn. If iDescendingSort is 'true' then the rows are sorted in descending order of the values.

Definition at line 149 of file FWTableWidget.cc.

References m_bodyTable, m_descendingSort, m_headerTable, m_sortedColumn, and FWTableManagerBase::sort().

Referenced by buttonReleasedInHeader(), FWTriggerTableView::setFrom(), and FWTableView::setFrom().

150 {
151  if(0!=m_headerTable) {
152  m_headerTable->sort(iColumn,iDescendingSort);
153  }
154  m_bodyTable->sort(iColumn,iDescendingSort);
155  m_sortedColumn =iColumn;
156  m_descendingSort=iDescendingSort;
157 
158  //fClient->NeedRedraw(m_header);
159  //fClient->NeedRedraw(m_body);
160 }
FWTableManagerBase * m_bodyTable
void sort(int iCol, bool iSortOrder)
Call to have table sorted on values in column iCol with the sort order being descending if iSortOrder...
FWTableManagerBase * m_headerTable
int FWTableWidget::sortedColumn ( ) const
inline

Definition at line 89 of file FWTableWidget.h.

References m_sortedColumn.

Referenced by FWTriggerTableView::addTo(), and FWTableView::addTo().

89 { return m_sortedColumn; }

Member Data Documentation

FWTabularWidget* FWTableWidget::m_body
private
FWTableManagerBase* FWTableWidget::m_bodyTable
private
bool FWTableWidget::m_descendingSort
private

Definition at line 118 of file FWTableWidget.h.

Referenced by buttonReleasedInHeader(), descendingSort(), and sort().

bool FWTableWidget::m_forceLayout
private

Definition at line 119 of file FWTableWidget.h.

Referenced by dataChanged(), and forceLayout().

FWTabularWidget* FWTableWidget::m_header
private
TGGC* FWTableWidget::m_headerBackground
private

Definition at line 121 of file FWTableWidget.h.

Referenced by SetHeaderBackgroundColor(), and ~FWTableWidget().

TGGC* FWTableWidget::m_headerForeground
private

Definition at line 122 of file FWTableWidget.h.

Referenced by SetHeaderForegroundColor(), and ~FWTableWidget().

FWTableManagerBase* FWTableWidget::m_headerTable
private

Definition at line 107 of file FWTableWidget.h.

Referenced by FWTableWidget(), and sort().

TGHScrollBar* FWTableWidget::m_hSlider
private

Definition at line 113 of file FWTableWidget.h.

Referenced by FWTableWidget(), GetDefaultSize(), and handleResize().

TGGC* FWTableWidget::m_lineSeparator
private

Definition at line 123 of file FWTableWidget.h.

Referenced by SetLineSeparatorColor(), and ~FWTableWidget().

FWTabularWidget* FWTableWidget::m_rowHeader
private
FWTableManagerBase* FWTableWidget::m_rowHeaderTable
private

Definition at line 108 of file FWTableWidget.h.

Referenced by FWTableWidget(), and SetBackgroundColor().

bool FWTableWidget::m_showingHSlider
private

Definition at line 115 of file FWTableWidget.h.

Referenced by handleResize().

bool FWTableWidget::m_showingVSlider
private

Definition at line 114 of file FWTableWidget.h.

Referenced by handleResize().

int FWTableWidget::m_sortedColumn
private

Definition at line 117 of file FWTableWidget.h.

Referenced by buttonReleasedInHeader(), sort(), and sortedColumn().

TGVScrollBar* FWTableWidget::m_vSlider
private

Definition at line 112 of file FWTableWidget.h.

Referenced by buttonReleasedInBody(), FWTableWidget(), GetDefaultSize(), and handleResize().