137 lines
6.1 KiB
C++
Executable File
137 lines
6.1 KiB
C++
Executable File
/**
|
|
*@RDE_HEADER@
|
|
* GUI Plugin for AreaEffectSimulation - Info
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by hjl, SLSE, 2017-03-23
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
//Lts
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <LtsSession/lts_session.h>
|
|
#include <LtsUtilsGuiDds/request_helper.h>
|
|
|
|
//AreaEffectSimulation
|
|
#include <AreaEffectSimulation/logger.h>
|
|
|
|
|
|
//DDS
|
|
#include <Plugins/AreaEffectSimulation/aes_data_plugin_interface.h>
|
|
#include <Plugins/ProjectDataManagement/pdm_data_plugin_interface.h>
|
|
|
|
|
|
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<Interface::Dtc> &dtc,
|
|
const std::shared_ptr<Interface::Ftc> &ftc,
|
|
const std::shared_ptr<ProjectDataManagement::Interface::Dtc> &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<Interface::Dtc> m_dtc;
|
|
std::shared_ptr<Interface::Ftc> m_ftc;
|
|
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
|
|
|
|
|
|
Ui::AesInfoDialog* m_ui;
|
|
LtsUtils::RequestHelper *m_requestHelper;
|
|
LOGGER_T m_logger;
|
|
};
|
|
} // namespace AreaEffectSimulation
|