CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FWTableManagerBase.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: TableWidget
4 // Class : FWTableManagerBase
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: Chris Jones
10 // Created: Mon Feb 2 16:40:44 EST 2009
11 //
12 
13 // system include files
14 
15 // user include files
18 
19 
20 //
21 // constants, enums and typedefs
22 //
23 
24 //
25 // static data member definitions
26 //
27 
28 //
29 // constructors and destructor
30 //
32 m_sortColumn(-1),
33 m_sortOrder(false)
34 {
35 }
36 
37 // FWTableManagerBase::FWTableManagerBase(const FWTableManagerBase& rhs)
38 // {
39 // // do actual copying here;
40 // }
41 
43 {
44 }
45 
46 //
47 // assignment operators
48 //
49 // const FWTableManagerBase& FWTableManagerBase::operator=(const FWTableManagerBase& rhs)
50 // {
51 // //An exception safe implementation is
52 // FWTableManagerBase temp(rhs);
53 // swap(rhs);
54 //
55 // return *this;
56 // }
57 
58 //
59 // member functions
60 //
61 void
62 FWTableManagerBase::sort(int col, bool sortOrder)
63 {
64  if(col <= numberOfColumns()) {
65  m_sortColumn = col;
67  implSort(col,sortOrder);
69  }
70 }
71 
73 {
74  if(-1 != m_sortColumn) {
76  }
77  Emit("dataChanged()");
78 }
79 
81 {
82  Emit("visualPropertiesChanged()");
83 }
84 
85 //
86 // const member functions
87 //
88 unsigned int FWTableManagerBase::cellHeight() const
89 {
91  if(cr) {
92  return cr->height();
93  }
94  if(hasRowHeaders()) {
95  cr = rowHeader(0);
96  if(cr) {
97  return cr->height();
98  }
99  }
100  return 0;
101 }
102 
103 std::vector<unsigned int> FWTableManagerBase::maxWidthForColumns() const
104 {
105  std::vector<unsigned int> returnValue;
106  returnValue.reserve(numberOfColumns());
107  const int numCols= numberOfColumns();
108  const int numRows = numberOfRows();
109  for(int col = 0; col < numCols; ++col) {
110  unsigned int max = 0;
111  for(int row=0; row < numRows; ++row) {
112  unsigned int width = cellRenderer(row,col)->width();
113  if(width > max) {
114  max = width;
115  }
116  }
117  returnValue.push_back(max);
118  }
119  return returnValue;
120 }
121 
123 {
124  return true;
125 }
126 
128 {
129  return false;
130 }
132 {
133  return 0;
134 }
135 
136 void
137 FWTableManagerBase::buttonPressedInRowHeader(Int_t row, Event_t* event, Int_t relX, Int_t relY)
138 {
139 }
140 void
141 FWTableManagerBase::buttonReleasedInRowHeader(Int_t row, Event_t* event, Int_t relX, Int_t relY)
142 {
143 }
144 
145 //
146 // static member functions
147 //
148 ClassImp(FWTableManagerBase)
virtual int numberOfColumns() const =0
Number of columns in the table.
virtual UInt_t width() const =0
returns the minimum width of the cell to which the renderer is representing
bool sortOrder(void)
The current sort order for the table.
virtual void implSort(int iCol, bool iSortOrder)=0
Called by &#39;sort&#39; method to actually handle the sorting of the rows. Arguments are the same as &#39;sort&#39;...
void sort(int iCol, bool iSortOrder)
Call to have table sorted on values in column iCol with the sort order being descending if iSortOrder...
void dataChanged()
Classes which inherit from FWTableManagerBase must call this when their underlying data changes...
virtual std::vector< unsigned int > maxWidthForColumns() const
for each column in the table this returns the present maximum width for that column ...
virtual bool hasLabelHeaders() const
virtual int numberOfRows() const =0
Number of rows in the table.
const T & max(const T &a, const T &b)
virtual FWTableCellRendererBase * cellRenderer(int iSortedRowNumber, int iCol) const =0
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)
virtual void buttonPressedInRowHeader(Int_t row, Event_t *event, Int_t relX, Int_t relY)
Called if mouse button pressed in Row Header, defaults is to do nothing.
virtual UInt_t height() const =0
returns the minimum height of the cell to which the renderer is representing
void visualPropertiesChanged()
Classes which inherit from FWTableManagerBase must call this when how the data is shown (e...
virtual unsigned int cellHeight() const
require all cells to be the same height
volatile std::atomic< bool > shutdown_flag false
int col
Definition: cuy.py:1008
virtual FWTableCellRendererBase * rowHeader(int iSortedRowNumber) const
Returns the renderer for the row header for the sorted row number iSortedRowNumber.
virtual bool hasRowHeaders() const
Returns &#39;true&#39; if this table has row headers. Defaults return value is false.