ImagingTools Core SDK
CGroupViewComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <iprm/IIdParam.h>
7#include <iprm/IOptionsList.h>
8#include <iprm/ISelectionParam.h>
9#include <imod/TSingleModelObserverBase.h>
10#include <icomp/CComponentBase.h>
11#include <imod/CModelUpdateBridge.h>
12
13// ImtCore includes
14#include <imtbase/CStaticObjectCollection.h>
15
16
17namespace imtloggui
18{
19
20
21class CGroupViewComp:
22 public icomp::CComponentBase,
24 public imod::TSingleModelObserverBase<iprm::ISelectionParam>,
25 virtual public iprm::IIdParam
26{
27public:
28 typedef icomp::CComponentBase BaseClass;
29 typedef imtbase::CStaticObjectCollection BaseClass2;
30
31 I_BEGIN_COMPONENT(CGroupViewComp)
32 I_REGISTER_INTERFACE(IObjectCollection);
33 I_REGISTER_INTERFACE(iprm::IIdParam);
34 I_ASSIGN_MULTI_0(m_idAttrPtr, "LayerViewIds", "Layer view ids", false);
35 I_ASSIGN_MULTI_0(m_nameAttrPtr, "LayerViewNames", "Layer view names", false);
36 I_ASSIGN_MULTI_0(m_layerViewsCompPtr, "LayerViews", "Layer views", true);
37 I_END_COMPONENT
38
39 CGroupViewComp();
40
41 // reimplemented (iprm::IIdParam)
42 virtual QByteArray GetId() const override;
43 virtual void SetId(const QByteArray& id) override;
44
45protected:
46 QByteArray GetSelectedLayerId();
47
48 // reimplemented (imod::CSingleModelObserverBase)
49 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
50
51 // reimplemented (icomp::CComponentBase)
52 virtual void OnComponentCreated() override;
53
54private:
55 I_MULTIATTR(QByteArray, m_idAttrPtr);
56 I_MULTIATTR(QString, m_nameAttrPtr);
57 I_MULTIREF(IObjectCollection, m_layerViewsCompPtr);
58
59 imod::CModelUpdateBridge m_updateBridge;
60 QByteArray m_groupId;
61};
62
63
64} // namespace imtloggui
65
66