CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FWPSetTableManager.h
Go to the documentation of this file.
1 #ifndef Fireworks_FWInterface_FWPSetTableManager_h
2 #define Fireworks_FWInterface_FWPSetTableManager_h
3 // -*- C++ -*-
4 //
5 // Package: FWInterface
6 // Class : FWPSetTableManager
7 //
16 //
17 // Original Author:
18 // Created: Mon Feb 28 17:06:50 CET 2011
19 //
20 
21 // system include files
22 
23 
24 #include <sigc++/sigc++.h>
28 
29 class FWPSetCellEditor;
30 namespace edm
31 {
32  class ScheduleInfo;
33 }
34 
35 
36 
38 {
39  friend class FWPathsPopup;
40 
41 public:
43  struct PSetData
44  {
45  PSetData() :level(-1),
46  tracked(false),
47 
48  type(-1),
49 
50  parent(-1),
51 
52  module(-1),
53  path(-1),
54 
57 
58  visible(false),
59 
60  matches(false),
62 
63  editable(false) , pset(0){}
64 
67 
68  int level;
69  bool tracked;
70  char type;
71  size_t parent;
72 
73  size_t module;
74  size_t path;
75 
78 
79  bool visible;
80  bool matches;
82  bool editable;
83 
85  };
86 
88  virtual ~FWPSetTableManager();
89 
90 
91  virtual int unsortedRowNumber(int unsorted) const ;
92  virtual int numberOfRows() const;
93  virtual int numberOfColumns() const;
94  virtual std::vector<std::string> getTitles() const;
95  virtual const std::string title() const;
96  virtual FWTableCellRendererBase* cellRenderer(int iSortedRowNumber, int iCol) const;
97 
98  int selectedRow() const;
99  int selectedColumn() const;
100  virtual bool rowIsSelected(int row) const;
101 
102  virtual void implSort(int, bool);
103  virtual bool cellDataIsSortable() const { return false ; }
104 
105  virtual void updateFilter(const char *filter);
106 
107  virtual std::vector<unsigned int> maxWidthForColumns() const;
108 
109  std::vector<PSetData> &data() { return m_entries; }
110  std::vector<int> &rowToIndex() { return m_row_to_index; }
111 
112  //______________________________________________________________________________
113 
114 protected:
115  struct ModuleInfo
116  {
120  size_t pathIndex;
121  size_t path;
122  size_t entry;
123  bool passed;
127  bool dirty;
128 
131  };
132 
134  struct PathUpdate
135  {
137  bool passed;
138  size_t choiceMaker;
139  };
140 
141 
142  void setExpanded(int row);
144  void update(std::vector<PathUpdate> &pathUpdates);
145 
146  bool applyEditor();
147  void cancelEditor();
148 
149  std::vector<ModuleInfo> &modules() { return m_modules; }
150  std::vector<PSetData> &entries() { return m_entries; }
151 
152  void setSelection (int row, int column, int mask);
153  //______________________________________________________________________________
154 
155 private:
156 
158  struct PathInfo
159  {
161  size_t entryId;
163  size_t moduleStart;
164  size_t moduleEnd;
165  bool passed;
166  };
167 
168  FWPSetTableManager(const FWPSetTableManager&); // stop default
169  const FWPSetTableManager& operator=(const FWPSetTableManager&); // stop default
170 
171  void recalculateVisibility();
172 
173  template <class T> void createScalarString(PSetData &data, T v);
174  template <typename T> void createVectorString(FWPSetTableManager::PSetData &data, const T &v, bool quotes);
175 
177 
178  void handleEntry(const edm::Entry &entry,const std::string &key);
181  void handlePSet(edm::ParameterSet *psp);
182 
183  std::vector<PSetData> m_entries;
185  std::vector<PathInfo> m_paths;
186  std::vector<ModuleInfo> m_modules;
187  std::map<std::string, size_t> m_pathIndex;
188  std::vector<size_t> m_parentStack;
189  std::vector<int> m_row_to_index;
194  std::vector<std::string> m_availablePaths;
195 
197 };
198 
199 
200 #endif
std::vector< ModuleInfo > & modules()
type
Definition: HCALResponse.h:21
virtual FWTableCellRendererBase * cellRenderer(int iSortedRowNumber, int iCol) const
std::vector< std::string > m_availablePaths
virtual std::vector< unsigned int > maxWidthForColumns() const
for each column in the table this returns the present maximum width for that column ...
static const TGPicture * info(bool iBackgroundIsBlack)
std::vector< PathInfo > m_paths
virtual bool rowIsSelected(int row) const
virtual void implSort(int, bool)
Called by &#39;sort&#39; method to actually handle the sorting of the rows. Arguments are the same as &#39;sort&#39;...
FWTextTreeCellRenderer m_renderer
std::vector< size_t > m_parentStack
std::vector< int > & rowToIndex()
void handlePSetEntry(edm::ParameterSetEntry &entry, const std::string &key)
void createVectorString(FWPSetTableManager::PSetData &data, const T &v, bool quotes)
std::vector< ModuleInfo > m_modules
virtual const std::string title() const
std::map< std::string, size_t > m_pathIndex
std::vector< PSetData > & data()
void handleVPSetEntry(edm::VParameterSetEntry &entry, const std::string &key)
std::vector< int > m_row_to_index
std::vector< PSetData > m_entries
virtual std::vector< std::string > getTitles() const
returns the title names for each column
void handleEntry(const edm::Entry &entry, const std::string &key)
void handlePSet(edm::ParameterSet *psp)
FWPSetCellEditor * m_editor
string key
FastSim: produces sample of signal events, overlayed with premixed minbias events.
void updateSchedule(const edm::ScheduleInfo *info)
const FWPSetTableManager & operator=(const FWPSetTableManager &)
void createScalarString(PSetData &data, T v)
virtual void updateFilter(const char *filter)
tuple editor
Definition: idDealer.py:73
void setCellValueEditor(FWPSetCellEditor *editor)
virtual bool cellDataIsSortable() const
void update(std::vector< PathUpdate > &pathUpdates)
virtual int unsortedRowNumber(int unsorted) const
when passed the index to the sorted order of the rows it returns the original row number from the und...
list entry
Definition: mps_splice.py:62
void setSelection(int row, int column, int mask)
volatile std::atomic< bool > shutdown_flag false
long double T
virtual int numberOfColumns() const
Number of columns in the table.
Definition: vlib.h:208
virtual int numberOfRows() const
Number of rows in the table.
std::vector< PSetData > & entries()