Files
qt5-legatus-legacy/Lts/Plugins/Timeline/Gui/EventTimelineClassic/attribute_value_lookup.h
T
2026-08-13 18:33:10 +02:00

139 lines
3.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Helper classes to retrieve attribute values
* $Id$
* $HeadURL$
* $Author$
*
* Created by Christian Ehrlicher, NLE, 2020-02-07
*/
#pragma once
#include <QMap>
#include <QString>
#include <memory>
namespace AudioVideoManagement
{
class StreamNameMapping;
namespace Interface
{
class Dtc;
}
}
namespace InfrastructureManagement
{
namespace Interface
{
class Dtc;
}
}
namespace OperatorManagement
{
namespace Interface
{
class Dtc;
}
}
namespace ParticipantManagement
{
namespace Interface
{
class Dtc;
}
}
namespace ProjectDataManagement
{
namespace Interface
{
class Dtc;
}
}
namespace Timeline
{
using AttributeValueMap = QMap<int, QString>;
using AtributeValueLookupMap = QMap<QString, AttributeValueMap>;
class AttributeValueLookupProvider
{
public:
virtual ~AttributeValueLookupProvider() = default;
virtual AttributeValueMap getAttributeValueMap(int eventType) const = 0;
virtual QString getValueStringFromValueId(int attributeValueId) const = 0;
};
class AvmChargeType final : public AttributeValueLookupProvider
{
public:
explicit AvmChargeType(const std::shared_ptr<ProjectDataManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_dtc;
};
class AvmGearType final : public AttributeValueLookupProvider
{
public:
explicit AvmGearType(const std::shared_ptr<ProjectDataManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_dtc;
};
class AvmParty final : public AttributeValueLookupProvider
{
public:
explicit AvmParty(const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtc;
};
class AvmEquipmentNumber final : public AttributeValueLookupProvider
{
public:
explicit AvmEquipmentNumber(const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtc;
};
class AvmOperator final : public AttributeValueLookupProvider
{
public:
explicit AvmOperator(const std::shared_ptr<OperatorManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<OperatorManagement::Interface::Dtc> m_dtc;
};
class AvmBuilding final : public AttributeValueLookupProvider
{
public:
explicit AvmBuilding(const std::shared_ptr<InfrastructureManagement::Interface::Dtc> &dtc) : m_dtc(dtc) {}
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<InfrastructureManagement::Interface::Dtc> m_dtc;
};
class AvmStreamName final : public AttributeValueLookupProvider
{
public:
explicit AvmStreamName(const std::shared_ptr<AudioVideoManagement::Interface::Dtc> &dtc);
~AvmStreamName();
AttributeValueMap getAttributeValueMap(int eventType) const override;
QString getValueStringFromValueId(int attributeValueId) const override;
private:
std::shared_ptr<AudioVideoManagement::Interface::Dtc> m_dtc;
std::shared_ptr<AudioVideoManagement::StreamNameMapping> m_snm;
};
} // namespace Timeline