12 #ifndef ROOT7_REveDataProxyBuilderBase
13 #define ROOT7_REveDataProxyBuilderBase
20 namespace Experimental {
22 class REveViewContext;
23 class REveTrackPropagator;
25 class REveDataProxyBuilderBase
30 std::string m_viewType;
31 const REveViewContext *m_viewContext{
nullptr};
32 REveCompound *m_elements{
nullptr};
34 Product(std::string viewType,
const REveViewContext* c);
40 const REveViewContext& Context()
const;
41 const REveDataCollection* Collection()
const {
return m_collection; }
45 REveDataProxyBuilderBase(
const std::string &type);
46 virtual ~REveDataProxyBuilderBase() {}
48 virtual void SetCollection(REveDataCollection*);
51 virtual void CollectionBeingDestroyed(
const REveDataCollection*);
56 REveElement* CreateProduct(std::string viewType,
const REveViewContext*);
59 void ModelChanges(
const REveDataCollection::Ids_t&);
60 void CollectionChanged(
const REveDataCollection*);
62 void SetupElement(REveElement* el,
bool color =
true)
const;
63 void SetupAddElement(REveElement* el, REveElement* parent,
bool set_color =
true)
const;
65 bool GetHaveAWindow()
const {
return m_haveWindow; }
66 void SetHaveAWindow(
bool);
68 std::string Type()
const {
return m_type; }
71 virtual bool HaveSingleProduct()
const {
return true; }
76 virtual bool VisibilityModelChanges(
int idx, REveElement*,
const REveViewContext*);
78 virtual void Build(
const REveDataCollection* iItem, REveElement* product,
const REveViewContext*);
79 virtual void BuildViewType(
const REveDataCollection* iItem, REveElement* product, std::string viewType,
const REveViewContext*);
81 virtual void ModelChanges(
const REveDataCollection::Ids_t&, Product*);
82 virtual void LocalModelChanges(
int idx, REveElement* el,
const REveViewContext* ctx);
85 REveCompound* CreateCompound(
bool set_color=
true,
bool propagate_color_to_all_children=
false)
const;
87 virtual void CleanLocal();
89 std::vector<Product*> m_products;
93 const REveDataCollection *m_collection{
nullptr};