00001 #ifndef Fireworks_Core_FWGeometryTableView_h 00002 #define Fireworks_Core_FWGeometryTableView_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWGeometryTableView 00007 // 00016 // 00017 // Original Author: 00018 // Created: Wed Jan 4 00:05:38 CET 2012 00019 // $Id: FWGeometryTableView.h,v 1.11 2012/05/09 04:51:05 amraktad Exp $ 00020 // 00021 00022 #include "Fireworks/Core/interface/FWGeometryTableViewBase.h" 00023 class FWGeometryTableManagerBase; 00024 class FWGeometryTableManager; 00025 class FWGUIValidatingTextEntry; 00026 class FWGeoMaterialValidator; 00027 class FWEveDetectorGeo; 00028 00029 class FWGeometryTableView : public FWGeometryTableViewBase 00030 { 00031 public: 00032 enum EMode { kNode, kVolume }; 00033 enum EProximityAlgo { kBBoxCenter, kBBoxSurface }; 00034 enum EFiterType { kFilterMaterialName, kFilterMaterialTitle, kFilterShapeName, kFilterShapeClassName }; 00035 00036 public: 00037 FWGeometryTableView(TEveWindowSlot* iParent, FWColorManager* colMng); 00038 virtual ~FWGeometryTableView(); 00039 virtual void populateController(ViewerParameterGUI&) const; 00040 virtual FWGeometryTableManagerBase* getTableManager(); 00041 00042 void filterListCallback(); 00043 void filterTextEntryCallback(); 00044 void updateFilter(std::string&); 00045 00046 bool getVolumeMode() const { return m_mode.value() == kVolume; } 00047 std::string getFilter() const { return m_filter.value(); } 00048 int getAutoExpand() const { return m_autoExpand.value(); } 00049 int getVisLevel() const { return m_visLevel.value(); } 00050 bool getIgnoreVisLevelWhenFilter() const { return m_visLevelFilter.value(); } 00051 00052 int getFilterType() const { return m_filterType.value(); } 00053 00054 bool drawTopNode() const { return ! m_disableTopNode.value(); } 00055 void autoExpandCallback(); 00056 virtual void setPath(int, std::string&); 00057 virtual void setFrom(const FWConfiguration&); 00058 00059 // void chosenItem(int); 00060 void updateVisibilityTopNode(); 00061 00062 void checkRegionOfInterest(); 00063 bool isSelectedByRegion() const { return m_selectRegion.value(); } 00064 00065 protected: 00066 // virtual void initGeometry(TGeoNode* iGeoTopNode, TObjArray* iVolumes); 00067 00068 private: 00069 FWGeometryTableView(const FWGeometryTableView&); // stop default 00070 const FWGeometryTableView& operator=(const FWGeometryTableView&); // stop default 00071 00072 // ---------- member data -------------------------------- 00073 FWGeometryTableManager *m_tableManager; 00074 00075 FWGUIValidatingTextEntry *m_filterEntry; 00076 FWGeoMaterialValidator *m_filterValidator; 00077 00078 #ifndef __CINT__ 00079 FWEnumParameter m_mode; 00080 FWBoolParameter m_disableTopNode; 00081 FWLongParameter m_visLevel; 00082 00083 FWStringParameter m_filter; 00084 FWEnumParameter m_filterType; 00085 FWBoolParameter m_visLevelFilter; 00086 00087 FWBoolParameter m_selectRegion; 00088 FWDoubleParameter m_regionRadius; 00089 FWEnumParameter m_proximityAlgo; 00090 00091 00092 boost::shared_ptr<FWParameterSetterBase> m_filterTypeSetter; 00093 00094 #endif 00095 00096 ClassDef(FWGeometryTableView, 0); 00097 }; 00098 00099 #endif