CMS 3D CMS Logo

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
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 nullptr;
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 //
ClassImp(FWTableManagerBase)
bool sortOrder(void)
The current sort order for the table.
virtual FWTableCellRendererBase * cellRenderer(int iSortedRowNumber, int iCol) const =0
virtual int numberOfRows() const =0
Number of rows in 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...
virtual UInt_t height() const =0
returns the minimum height of the cell to which the renderer is representing
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 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
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.
~FWTableManagerBase() override
void visualPropertiesChanged()
Classes which inherit from FWTableManagerBase must call this when how the data is shown (e...
col
Definition: cuy.py:1010
virtual unsigned int cellHeight() const
require all cells to be the same height
virtual FWTableCellRendererBase * rowHeader(int iSortedRowNumber) const
Returns the renderer for the row header for the sorted row number iSortedRowNumber.
Definition: event.py:1
virtual bool hasRowHeaders() const
Returns &#39;true&#39; if this table has row headers. Defaults return value is false.