ImagingTools Core SDK
CGuiElementContainerRepresentationControllerComp.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 <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtauth/IPermissionChecker.h>
10#include <imtserverapp/IRepresentationController.h>
11#include <imtserverapp/ICommandPermissionsProvider.h>
12
13
14namespace imtserverapp
15{
16
17
18class CGuiElementContainerRepresentationControllerComp:
19 public ilog::CLoggerComponentBase,
20 virtual public imtserverapp::IRepresentationController
21{
22public:
23 typedef ilog::CLoggerComponentBase BaseClass;
24 I_BEGIN_COMPONENT(CGuiElementContainerRepresentationControllerComp)
25 I_REGISTER_INTERFACE(imtserverapp::IRepresentationController);
26 I_ASSIGN_MULTI_0(m_representationControllersCompPtr, "RepresentationControllers", "Representation of the controllers", false);
27 I_ASSIGN(m_commandPermissionsProviderCompPtr, "CommandPermissionsProvider", "Command permissions provider", false, "CommandPermissionsProvider");
28 I_ASSIGN(m_checkPermissionCompPtr, "PermissionChecker", "Checker of the permissions", false, "PermissionChecker");
29 I_ASSIGN(m_slaveRepresentationControllerCompPtr, "SlaveRepresentationController", "Slave representation controller", false, "SlaveRepresentationController");
30 I_END_COMPONENT;
31
32protected:
33 virtual const imtserverapp::IRepresentationController* FindRepresentationController(const QByteArray& modelId) const;
34
35 // reimplemented (imtserverapp::IRepresentationController)
36 virtual QByteArray GetModelId() const override;
37 virtual bool IsModelSupported(const istd::IChangeable& dataModel) const override;
38 virtual bool GetRepresentationFromDataModel(
39 const istd::IChangeable& dataModel,
40 QJsonObject& representation,
41 const iprm::IParamsSet* paramsPtr = nullptr) const override;
42 virtual bool GetDataModelFromRepresentation(
43 const QJsonObject& representation,
44 istd::IChangeable& dataModel) const override;
45
46protected:
47 I_MULTIREF(imtserverapp::IRepresentationController, m_representationControllersCompPtr);
48 I_REF(imtserverapp::ICommandPermissionsProvider, m_commandPermissionsProviderCompPtr);
49 I_REF(imtauth::IPermissionChecker, m_checkPermissionCompPtr);
50 I_REF(imtserverapp::IRepresentationController, m_slaveRepresentationControllerCompPtr);
51};
52
53
54} // namespace imtgui
55