CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FWEventItem.h
Go to the documentation of this file.
1 #ifndef Fireworks_Core_FWEventItem_h
2 #define Fireworks_Core_FWEventItem_h
3 // -*- C++ -*-
4 //
5 // Package: Core
6 // Class : FWEventItem
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu Jan 3 14:02:21 EST 2008
19 //
20 
21 // system include files
22 #include <string>
23 #include <vector>
25 #include <boost/shared_ptr.hpp>
26 #include <sigc++/connection.h>
27 
28 // user include files
33 
36 
38 
39 // forward declarations
40 class TClass;
42 class FWSelectionManager;
43 class FWGeometry;
44 class TVirtualCollectionProxy;
45 class FWItemAccessorBase;
47 class FWConfiguration;
48 
49 namespace edm {
50  class EventBase;
51 }
52 namespace fireworks {
53  class Context;
54 }
55 
57 {
58 public:
59  struct ModelInfo {
62  ModelInfo(const FWDisplayProperties& iProps, bool iIsSelected) :
63  m_displayProperties(iProps),
64  m_isSelected(iIsSelected) {
65  }
66 
68  return m_displayProperties;
69  }
70  bool isSelected() const {
71  return m_isSelected;
72  }
73  };
74 
76  unsigned int iItemId,
77  boost::shared_ptr<FWItemAccessorBase> iAccessor,
78  const FWPhysicsObjectDesc& iDesc, bool showFiltered = true, const FWConfiguration* pbConf = 0);
79  virtual ~FWEventItem();
80 
81  // ---------- const member functions ---------------------
82 #if !defined(__CINT__) && !defined(__MAKECINT__)
83  template<class T>
84  void get(const T*& oData) const {
85  oData=reinterpret_cast<const T*>(data(typeid(T)));
86  }
87 #endif
88  const void* data(const std::type_info&) const;
90 
92  int layer() const;
94  bool isInFront() const;
96  bool isInBack() const;
97 
98  const std::string& filterExpression() const;
99 
101 
104  unsigned int id() const;
105  const std::string& name() const;
106  const TClass* type() const;
108  const std::string& purpose() const;
109 
110  const std::string& moduleLabel() const;
111  const std::string& productInstanceLabel() const;
112  const std::string& processName() const;
113 
114  const TClass* modelType() const;
115  ModelInfo modelInfo(int iIndex) const; //return copy for now since want to be able to change visibility
116  size_t size() const;
117  const void* modelData(int iIndex) const;
118  std::string modelName(int iIndex) const;
119 
122  bool haveInterestingValue() const;
123  const std::string& modelInterestingValueAsString(int iIndex) const;
124 
125  bool isCollection() const;
126 
127  //convenience methods
128 
129  const fireworks::Context& context () const {
130  return *m_context;
131  }
132 
134  return m_context->modelChangeManager();
135  }
137  return m_context->selectionManager();
138  }
139 
141  return m_context->colorManager();
142  }
143 
144  bool hasEvent() const {
145  return 0 != m_event;
146  }
147 
148  // hackery methods
149  const edm::EventBase *getEvent () const {
150  return m_event;
151  }
152 
153 
155  bool hasError() const;
157  const std::string& errorMessage() const;
158 
159  // ---------- static member functions --------------------
160 
161  static int minLayerValue();
162  static int maxLayerValue();
163 
164  // ---------- member functions ---------------------------
165  void setEvent(const edm::EventBase* iEvent);
166 
167  const FWGeometry* getGeom() const;
169 
170  void setLabels(const std::string& iModule,
171  const std::string& iProductInstance,
172  const std::string& iProcess);
173  void setName(const std::string& iName);
176  void setFilterExpression(const std::string& );
177 
178  void setShowFilteredEntries(bool x);
179 
181  void selectItem();
182  void unselectItem();
183  void toggleSelectItem();
184  bool itemIsSelected() const;
185 
187  void moveToFront();
188  void moveToBack();
189  void moveToLayer(int layer);
190 
191  void proxyConfigChanged();
192 
193  void unselect(int iIndex) const;
194  void select(int iIndex) const;
195  void toggleSelect(int iIndex) const;
196  void setDisplayProperties(int iIndex, const FWDisplayProperties&) const;
197 
198  void destroy() const;
201 
204 
209 
213 
216 
220 private:
221  //FWEventItem(const FWEventItem&); // stop default
222 
223  //const FWEventItem& operator=(const FWEventItem&); // stop default
224  void setData(const edm::ObjectWithDict& ) const;
225 
226  void getPrimaryData() const;
227  void runFilter();
228  void handleChange(bool filterUpdate = true);
229  // ---------- member data --------------------------------
231  unsigned int m_id;
233  const TClass* m_type;
235  boost::shared_ptr<FWItemAccessorBase> m_accessor;
237  int m_layer;
238  mutable std::vector<ModelInfo> m_itemInfos;
239 
240  //This will probably moved to a FWEventItemRetriever class
247 
252 
254 
255 
257 };
258 
259 
260 #endif
const TClass * m_type
Definition: FWEventItem.h:233
FWProxyBuilderConfiguration * getConfig() const
Definition: FWEventItem.h:168
const FWItemValueGetter & valueGetter() const
one value from the model which is normally used for the popup
Definition: FWEventItem.h:121
FWItemChangeSignal preItemChanged_
Definition: FWEventItem.h:208
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:464
FWModelChangeManager * changeManager() const
Definition: FWEventItem.h:133
const FWDisplayProperties & displayProperties() const
Definition: FWEventItem.h:67
void destroy() const
Definition: FWEventItem.cc:622
void moveToBack()
Definition: FWEventItem.cc:344
void moveToFront()
Definition: FWEventItem.cc:321
void moveToLayer(int layer)
Definition: FWEventItem.cc:367
std::string modelName(int iIndex) const
Definition: FWEventItem.cc:588
void setEvent(const edm::EventBase *iEvent)
Definition: FWEventItem.cc:121
const std::string & name() const
Definition: FWEventItem.cc:513
FWColorManager * colorManager() const
Definition: FWEventItem.h:140
FWEventItem(fireworks::Context *iContext, unsigned int iItemId, boost::shared_ptr< FWItemAccessorBase > iAccessor, const FWPhysicsObjectDesc &iDesc, bool showFiltered=true, const FWConfiguration *pbConf=0)
Definition: FWEventItem.cc:52
FWItemValueGetter m_interestingValueGetter
Definition: FWEventItem.h:246
bool isSelected() const
Definition: FWEventItem.h:70
void proxyConfigChanged()
Definition: FWEventItem.cc:379
FWColorManager * colorManager() const
Definition: Context.h:65
void setDisplayProperties(int iIndex, const FWDisplayProperties &) const
Definition: FWEventItem.cc:287
const std::string & filterExpression() const
Definition: FWEventItem.cc:616
FWItemChangeSignal defaultDisplayPropertiesChanged_
Definition: FWEventItem.h:212
bool haveInterestingValue() const
Definition: FWEventItem.cc:601
void getPrimaryData() const
Definition: FWEventItem.cc:456
void unselect(int iIndex) const
Definition: FWEventItem.cc:250
FWItemChangeSignal goingToBeDestroyed_
Definition: FWEventItem.h:219
boost::shared_ptr< FWItemAccessorBase > m_accessor
Definition: FWEventItem.h:235
const fireworks::Context * m_context
Definition: FWEventItem.h:230
bool itemIsSelected() const
Definition: FWEventItem.cc:675
const std::string & processName() const
Definition: FWEventItem.cc:542
void setLabels(const std::string &iModule, const std::string &iProductInstance, const std::string &iProcess)
Definition: FWEventItem.cc:131
std::string m_moduleLabel
Definition: FWEventItem.h:241
static int maxLayerValue()
Definition: FWEventItem.cc:43
const void * data(const std::type_info &) const
Definition: FWEventItem.cc:405
int layer() const
Definition: FWEventItem.cc:470
bool m_showFilteredEntries
Definition: FWEventItem.h:249
unsigned int m_id
Definition: FWEventItem.h:231
void setShowFilteredEntries(bool x)
Definition: FWEventItem.cc:208
FWModelFilter m_filter
Definition: FWEventItem.h:248
int iEvent
Definition: GenABIO.cc:230
void setDefaultDisplayProperties(const FWDisplayProperties &)
Definition: FWEventItem.cc:156
const std::string & productInstanceLabel() const
Definition: FWEventItem.cc:536
void handleChange(bool filterUpdate=true)
Definition: FWEventItem.cc:389
std::string m_processName
Definition: FWEventItem.h:243
edm::TypeWithDict m_wrapperType
Definition: FWEventItem.h:245
const TClass * type() const
Definition: FWEventItem.cc:519
FWProxyBuilderConfiguration * m_proxyBuilderConfig
Definition: FWEventItem.h:256
const fireworks::Context & context() const
Definition: FWEventItem.h:129
FWItemChangeSignal itemChanged_
Definition: FWEventItem.h:203
unsigned int id() const
Definition: FWEventItem.cc:507
FWSelectionManager * selectionManager() const
Definition: Context.h:57
void setData(const edm::ObjectWithDict &) const
Definition: FWEventItem.cc:443
FWModelChangeManager * modelChangeManager() const
Definition: Context.h:54
bool showFilteredEntries() const
Definition: FWEventItem.h:100
const std::string & modelInterestingValueAsString(int iIndex) const
Definition: FWEventItem.cc:608
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:60
static int minLayerValue()
Definition: FWEventItem.cc:38
bool m_printedErrorThisEvent
Definition: FWEventItem.h:250
bool hasError() const
returns true if failed to get data for this event
Definition: FWEventItem.cc:681
FWSelectionManager * selectionManager() const
Definition: FWEventItem.h:136
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:149
void toggleSelect(int iIndex) const
Definition: FWEventItem.cc:275
bool isInBack() const
returns true if item is behind all other items
Definition: FWEventItem.cc:491
size_t size() const
Definition: FWEventItem.cc:562
FWDisplayProperties m_displayProperties
Definition: FWEventItem.h:236
void selectItem()
Definition: FWEventItem.cc:646
virtual ~FWEventItem()
Definition: FWEventItem.cc:100
bool hasEvent() const
Definition: FWEventItem.h:144
bool isInFront() const
returns true if item is in front of all other items
Definition: FWEventItem.cc:476
void setFilterExpression(const std::string &)
Definition: FWEventItem.cc:200
void unselectItem()
Definition: FWEventItem.cc:655
const edm::EventBase * m_event
Definition: FWEventItem.h:244
FWModelChangeSignal changed_
Definition: FWEventItem.h:200
std::string m_errorMessage
Definition: FWEventItem.h:251
bool isCollection() const
Definition: FWEventItem.cc:569
const TClass * modelType() const
Definition: FWEventItem.cc:575
const std::string & errorMessage() const
returns error string if there was a problem this event
Definition: FWEventItem.cc:686
std::vector< ModelInfo > m_itemInfos
Definition: FWEventItem.h:238
void toggleSelectItem()
Definition: FWEventItem.cc:664
ModelInfo(const FWDisplayProperties &iProps, bool iIsSelected)
Definition: FWEventItem.h:62
void select(int iIndex) const
Definition: FWEventItem.cc:261
bool m_isSelected
Definition: FWEventItem.h:253
const void * modelData(int iIndex) const
Definition: FWEventItem.cc:581
Definition: DDAxes.h:10
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:548
const std::string & purpose() const
Definition: FWEventItem.cc:525
long double T
void setName(const std::string &iName)
Definition: FWEventItem.cc:144
void runFilter()
Definition: FWEventItem.cc:215
std::string m_purpose
Definition: FWEventItem.h:234
std::string m_productInstanceLabel
Definition: FWEventItem.h:242
std::string m_name
Definition: FWEventItem.h:232
const FWGeometry * getGeom() const
Definition: FWEventItem.cc:695
const std::string & moduleLabel() const
Definition: FWEventItem.cc:531
FWItemChangeSignal filterChanged_
Definition: FWEventItem.h:215