ImagingTools Core SDK
CGuiElementModelRepresentationControllerComp.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 <iqt/ITranslationManager.h>
7#include <ilog/TLoggerCompWrap.h>
8
9// ImtCore includes
10#include <imtauth/IPermissionChecker.h>
11#include <imtserverapp/ICommandPermissionsProvider.h>
12#include <imtserverapp/IRepresentationController.h>
13
14
15namespace imtserverapp
16{
17
18
19class CGuiElementModelRepresentationControllerComp:
20 public ilog::CLoggerComponentBase,
21 virtual public imtserverapp::IRepresentationController
22{
23public:
24 typedef ilog::CLoggerComponentBase BaseClass;
25 I_BEGIN_COMPONENT(CGuiElementModelRepresentationControllerComp)
26 I_REGISTER_INTERFACE(imtserverapp::IRepresentationController);
27 I_ASSIGN(m_representationControllerCompPtr, "ContainerRepresentationController", "Representation controller for the sub elements container", false, "ContainerRepresentationController");
28 I_ASSIGN(m_modelIdAttrPtr, "ModelId", "Model-ID", false, "");
29 I_ASSIGN(m_translationManagerCompPtr, "TranslationManager", "Translation manager", false, "TranslationManager");
30 I_ASSIGN(m_commandPermissionsProviderCompPtr, "CommandPermissionsProvider", "Command permissions provider", false, "CommandPermissionsProvider");
31 I_ASSIGN(m_checkPermissionCompPtr, "PermissionChecker", "Checker of the permissions", false, "PermissionChecker");
32 I_END_COMPONENT;
33
34protected:
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_ATTR(QByteArray, m_modelIdAttrPtr);
48 I_REF(iqt::ITranslationManager, m_translationManagerCompPtr);
49 I_REF(imtserverapp::IRepresentationController, m_representationControllerCompPtr);
50 I_REF(imtserverapp::ICommandPermissionsProvider, m_commandPermissionsProviderCompPtr);
51 I_REF(imtauth::IPermissionChecker, m_checkPermissionCompPtr);
52};
53
54
55} // namespace imtserverapp
56