6#include <icomp/CComponentBase.h>
7#include <imod/TSingleModelObserverBase.h>
8#include <iprm/IEnableableParam.h>
11#include <iauth/ILogin.h>
18class CLoginBasedEnablerComp:
19 public icomp::CComponentBase,
20 virtual public iprm::IEnableableParam,
21 protected imod::TSingleModelObserverBase<iauth::ILogin>
24 typedef icomp::CComponentBase BaseClass;
25 typedef imod::TSingleModelObserverBase<iauth::ILogin> BaseClass2;
27 I_BEGIN_COMPONENT(CLoginBasedEnablerComp);
28 I_REGISTER_INTERFACE(iprm::IEnableableParam);
29 I_ASSIGN(m_loginCompPtr,
"Login",
"Login",
true,
"Login");
30 I_ASSIGN_TO(m_loginModelCompPtr, m_loginCompPtr,
true);
33 CLoginBasedEnablerComp();
36 virtual bool IsEnabled()
const override;
37 virtual bool IsEnablingAllowed()
const override;
38 virtual bool SetEnabled(
bool isEnabled =
true)
override;
41 virtual bool Serialize(iser::IArchive& archive)
override;
45 virtual void OnComponentCreated()
override;
46 virtual void OnComponentDestroyed()
override;
49 virtual void OnUpdate(
const istd::IChangeable::ChangeSet& changeSet)
override;
52 I_REF(iauth::ILogin, m_loginCompPtr);
53 I_REF(imod::IModel, m_loginModelCompPtr);