/** * Object from database for technical areas * $Id$ * $HeadURL$ * $Author$ * created by: Philipp Dassow, SLEA, 2017-06-06 */ #pragma once #include "aes_db.h" #include "object_base.h" namespace AreaEffectSimulation { class ObjectTechnicalArea final : public ObjectBaseTmpl { Q_OBJECT public: explicit ObjectTechnicalArea(MainHandler *mainHandler, QObject *parent = nullptr); ~ObjectTechnicalArea(); Core::FunctionReplyObject createObject(const Database::AesTechnicalArea &data); Core::FunctionReplyObject updateObject(const Database::AesTechnicalArea &data) override; Core::FunctionReplyObject removeObject() override; std::vector form() const override { return m_aiv.form(); } QPolygonF generateForm() override; AesType aesType() const override { return AesType_def::AtTechnicalArea; } bool isCentral() const override { return m_data.isCentral; } void removeTopics(); protected: void setEffectState(AesEffectState newState) override; void publishAiv(); protected Q_SLOTS: void onPublishData() override; private: AesItemView m_aiv; }; }