6#include <QtCore/QMutex>
7#include <QtWidgets/QGraphicsItem>
10#include <iprm/IIdParam.h>
11#include <iprm/IOptionsList.h>
12#include <imod/TSingleModelObserverBase.h>
13#include <istd/TSmartPtr.h>
14#include <icomp/CComponentBase.h>
17#include <imtloggui/IGraphicsSceneProvider.h>
18#include <imtloggui/IEventScenePositionProvider.h>
19#include <imtloggui/IScenographer.h>
25class CRepresentationViewCompBase:
27 public icomp::CComponentBase,
28 public imod::TSingleModelObserverBase<istd::IChangeable>,
29 virtual public iprm::IIdParam,
30 virtual public IScenographer
34 typedef icomp::CComponentBase BaseClass;
36 I_BEGIN_BASE_COMPONENT(CRepresentationViewCompBase)
37 I_REGISTER_INTERFACE(IIdParam);
38 I_REGISTER_INTERFACE(IScenographer);
39 I_ASSIGN(m_graphicsSceneProviderCompPtr,
"GraphicsSceneProvider",
"Graphics scene provider",
true,
"GraphicsSceneProvider");
40 I_ASSIGN(m_positionProviderCompPtr,
"ScenePositionProvider",
"Scene position provider",
true,
"ScenePositionProvider");
43 CRepresentationViewCompBase();
46 virtual void AddItemsToScene()
override;
47 virtual void RemoveItemsFromScene()
override;
50 virtual QByteArray GetId()
const override;
51 virtual void SetId(
const QByteArray&
id)
override;
54 virtual bool Serialize(iser::IArchive& archive)
override;
57 typedef istd::TSmartPtr<QGraphicsItem> GraphicsItemPtr;
58 typedef QList<GraphicsItemPtr> GraphicsItemList;
61 void UpdateItemsOnScene(QGraphicsScene* scenePtr);
62 GraphicsItemList GetAddedItems();
63 GraphicsItemList GetRemovedItems();
66 virtual void OnUpdate(
const istd::IChangeable::ChangeSet& changeSet)
override;
69 I_REF(IGraphicsSceneProvider, m_graphicsSceneProviderCompPtr);
70 I_REF(IEventScenePositionProvider, m_positionProviderCompPtr);
75 GraphicsItemList m_itemsOnScene;
76 GraphicsItemList m_generatedItems;