/** *@RDE_HEADER@ * GUI Plugin for AreaEffectSimulation - Info * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2017-03-23 */ #pragma once //Lts #include #include #include //AreaEffectSimulation #include //DDS #include #include namespace Ui { class AesInfoDialog; } namespace AreaEffectSimulation { // -------------------------------------------------------- // AESInfoDialog // -------------------------------------------------------- class AesInfoDialog : public LtsWidgets::LtsDialog , protected AreaEffectSimulation::Interface::Ftc::MineResetReplyHandler { Q_OBJECT public: explicit AesInfoDialog(int aesEntityId, AreaEffectSimulation::AesType aesType, QWidget *parent = nullptr); ~AesInfoDialog(); bool init(LtsSession::LtsSession *session, const std::shared_ptr &dtc, const std::shared_ptr &ftc, const std::shared_ptr &pdmDtc); void onMineResetReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } private: void retranslate() override; void handleNContamination(const AesItemView &aesItemView); void handleNContamination(const AreaEffectSimulation::NContamination &data); void handleBCContamination(const AesItemView &aesItemView); void handleBCContamination(const AreaEffectSimulation::BCContamination &data); void handleExplosionArea(const AesItemView &aesItemView); void handleExplosionArea(const AreaEffectSimulation::ExplosionArea &data); void handleExplosionSingle(const AesItemView &aesItemView); void handleExplosionSingle(const AreaEffectSimulation::ExplosionSingle &data); void handleMineArea(const AesItemView &aesItemView); void handleMineArea(const AreaEffectSimulation::MineArea &data); void handleMineCorridor(const AesItemView &aesItemView); void handleMineCorridor(const AreaEffectSimulation::MineCorridor &data); void handleBoobyTrap(const AesItemView &aesItemView); void handleBoobyTrap(const AreaEffectSimulation::BoobyTrap &data); void handleOffRouteMine(const AesItemView &aesItemView); void handleOffRouteMine(const AreaEffectSimulation::OffRouteMine &data); void handleGasPipe(const AesItemView &aesItemView); void handleGasPipe(const AreaEffectSimulation::GasPipe &data); void handleDangerArea(const AesItemView &aesItemView); void handleDangerArea(const AreaEffectSimulation::DangerArea &data); void handleBorderline(const AesItemView &aesItemView); void handleBorderline(const AreaEffectSimulation::Borderline &data); void handleFunctionalArea(const AesItemView &aesItemView); void handleFunctionalArea(const AreaEffectSimulation::FunctionalArea &data); void handleAirSupportImpact(const AesItemView &aesItemView); void handleAirSupportImpact(const AreaEffectSimulation::AirSupportImpact &data); void handleMineAraeSingleMine(); void handleMineAraeSingleMine(const Core::GeoPosition2D &position, const DusMine &mine); void handleSingleDusMine(); void handleExplosionCluster(const AesItemView &aesItemView); void handleExplosionCluster(const AreaEffectSimulation::ExplosionCluster &data); void handleEffectCluster(const AesItemView &aesItemView); void handleEffectCluster(const AreaEffectSimulation::EffectCluster &data); bool cbFunc(const AesItemView &aesItemView); void handleAesItem(const AesItem &aesData, AesType aesTypeId); private Q_SLOTS: void onFindOnMap(); void onShowDetails(); bool onResetDusMines(); void onNContaminationChanged(const AreaEffectSimulation::NContamination &data, DataModification modType); void onBCContaminationChanged(const AreaEffectSimulation::BCContamination &data, DataModification modType); void onBoobyTrapChanged(const AreaEffectSimulation::BoobyTrap &data, DataModification modType); void onOffRouteMineChanged(const AreaEffectSimulation::OffRouteMine &data, DataModification modType); void onExplosionAreaChanged(const AreaEffectSimulation::ExplosionArea &data, DataModification modType); void onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType); void onMineAreaChanged(const AreaEffectSimulation::MineArea &data, DataModification modType); void onMineCorridorChanged(const AreaEffectSimulation::MineCorridor &data, DataModification modType); void onGasPipeChanged(const GasPipe &data, DataModification modType); void onDangerAreaChanged(const AreaEffectSimulation::DangerArea &data, DataModification modType); void onBorderlineChanged(const AreaEffectSimulation::Borderline &data, DataModification modType); void onFunctionalAreaChanged(const AreaEffectSimulation::FunctionalArea &data, DataModification modType); void onAirSupportImpactChanged(const AirSupportImpact &data, DataModification modType); void onDusMineStateChanged(const DusMineState &data, DataModification modType); void onDusSingleMineChanged(const DusSingleMine &data, DataModification modType); void onExplosionClusterChanged(const ExplosionCluster &data, DataModification modType); void onEffectClusterChanged(const EffectCluster &data, DataModification modType); private: int m_aesEntityId; QString m_aesEntityName; AreaEffectSimulation::AesType m_aesType; ProjectDataManagement::EffectSource m_aesEffectSource; int m_bcChargeTypeId; int m_singleExpChargeTypeId; int m_areaExpChargeTypeId; bool m_mineIsReactivatable; LtsSession::LtsSession *m_session; std::shared_ptr m_dtc; std::shared_ptr m_ftc; std::shared_ptr m_pdmDtc; Ui::AesInfoDialog* m_ui; LtsUtils::RequestHelper *m_requestHelper; LOGGER_T m_logger; }; } // namespace AreaEffectSimulation