6#include <iprm/IOptionsList.h>
7#include <iprm/ISelectionParam.h>
8#include <imod/TSingleModelObserverBase.h>
9#include <icomp/CComponentBase.h>
12#include <imtbase/ITimeRangeProvider.h>
13#include <imtbase/CStaticObjectCollection.h>
21 public icomp::CComponentBase,
23 protected imod::TSingleModelObserverBase<imtbase::ITimeRangeProvider>,
24 virtual public iprm::IOptionsList,
25 virtual public iprm::ISelectionParam
28 typedef icomp::CComponentBase BaseClass;
31 I_BEGIN_COMPONENT(CGroupComp)
33 I_REGISTER_INTERFACE(iprm::IOptionsList);
34 I_REGISTER_INTERFACE(iprm::ISelectionParam);
35 I_ASSIGN_MULTI_0(m_idAttrPtr,
"LayerIds",
"Layer ids",
false);
36 I_ASSIGN_MULTI_0(m_nameAttrPtr,
"LayerNames",
"Layer names",
false);
37 I_ASSIGN_MULTI_0(m_minTimespanAttrPtr,
"LayerMinTimespan",
"Minimum timespan for layer",
false);
38 I_ASSIGN_MULTI_0(m_layerCompPtr,
"Layers",
"Layers",
false);
39 I_ASSIGN(m_timeRangeProviderCompPtr,
"TimeRangeProvider",
"TimeRangeProvider",
true,
"TimeRangeProvider");
40 I_ASSIGN_TO(m_timeRangeProviderModelCompPtr, m_timeRangeProviderCompPtr,
true);
44 virtual const IOptionsList* GetSelectionConstraints()
const override;
45 virtual int GetSelectedOptionIndex()
const override;
46 virtual bool SetSelectedOptionIndex(
int index)
override;
47 virtual ISelectionParam* GetSubselection(
int index)
const override;
50 virtual int GetOptionsFlags()
const override;
51 virtual int GetOptionsCount()
const override;
52 virtual QString GetOptionName(
int index)
const override;
53 virtual QString GetOptionDescription(
int index)
const override;
54 virtual QByteArray GetOptionId(
int index)
const override;
55 virtual bool IsOptionEnabled(
int index)
const override;
59 virtual void OnUpdate(
const istd::IChangeable::ChangeSet& changeSet)
override;
62 virtual void OnComponentCreated()
override;
63 virtual void OnComponentDestroyed()
override;
66 void SetActiveLayer(
const QByteArray& layerId);
69 I_MULTIATTR(QByteArray, m_idAttrPtr);
70 I_MULTIATTR(QString, m_nameAttrPtr);
71 I_MULTIATTR(
double, m_minTimespanAttrPtr);
73 I_REF(imtbase::ITimeRangeProvider, m_timeRangeProviderCompPtr);
74 I_REF(imod::IModel, m_timeRangeProviderModelCompPtr);
76 QMap<uint64_t, QByteArray> m_arrangedIds;
78 QByteArray m_activeLayerId;