Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,201 @@
|
||||
/**
|
||||
*@RDE_HEADER@
|
||||
* GUI Plugin for Building HitLine - Info
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by hjl, NLE, 2018-09-13
|
||||
*/
|
||||
|
||||
#include "bld_hitline_info_dialog.h"
|
||||
#include "ui_bld_hitline_info_dialog.h"
|
||||
#include <ParticipantManagement/ppm_translation.h>
|
||||
#include <ProjectDataManagement/pdm_to_string.h>
|
||||
#include <LtsSession/lts_session.h>
|
||||
#include <PluginInterfaces/gui_plugin_interface.h>
|
||||
|
||||
#include <LtsCoordTrans/lts_coord_trans.h>
|
||||
#include <ngltools/ngltools_dtg.h>
|
||||
|
||||
|
||||
//DDS
|
||||
#include <InfrastructureManagement/ism_data_plugin_interface.h>
|
||||
#include <ProjectDataManagement/pdm_data_plugin_interface.h>
|
||||
#include <ParticipantManagement/ppm_data_plugin_interface.h>
|
||||
#include <AreaEffectSimulation/aes_data_plugin_interface.h>
|
||||
#include <Buildings/bld_data_plugin_interface.h>
|
||||
|
||||
//SituationMap
|
||||
#include <SituationMapPlugin/situation_map_gui_plugin_interface.h>
|
||||
|
||||
namespace Buildings
|
||||
{
|
||||
|
||||
HitLineInfoDialog::HitLineInfoDialog(int hitLineId, QWidget *parent)
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly)
|
||||
, m_hitLineId(hitLineId)
|
||||
, m_ui(new Ui::HitLineInfoDialog)
|
||||
, m_logger(getLogger("BuildingHitLineInfoDialog"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
connect(m_ui->pbOriginatorFindOnMap, &QToolButton::clicked,
|
||||
this, &HitLineInfoDialog::onFindOriginatorOnMap);
|
||||
connect(m_ui->pbBuildingFindOnMap, &QToolButton::clicked,
|
||||
this, &HitLineInfoDialog::onFindBuildingOnMap);
|
||||
|
||||
// Debug Infos
|
||||
#ifndef LTS_DEBUG
|
||||
m_ui->lbHitLineId->hide();
|
||||
m_ui->lblHitLineId->hide();
|
||||
m_ui->lbChargeTypeId->hide();
|
||||
m_ui->lblChargeTypeId->hide();
|
||||
m_ui->lbBuildingId->hide();
|
||||
m_ui->lblBuildingId->hide();
|
||||
// m_ui->lbChargeType->hide();
|
||||
// m_ui->lblChargeType->hide();
|
||||
#endif
|
||||
|
||||
setOnlineHelpFilename(QStringLiteral("Info_Dialog-Building_Hitline"));
|
||||
} // end of ctor()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
HitLineInfoDialog::~HitLineInfoDialog()
|
||||
{
|
||||
delete m_ui;
|
||||
} // end of dtor()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void HitLineInfoDialog::retranslate()
|
||||
{
|
||||
translate(m_ui, tr("Building Hit Line Info"));
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
bool HitLineInfoDialog::init(LtsSession::LtsSession *session)
|
||||
{
|
||||
if (!session->getDtc<Buildings::DataInterface>(m_bldDtc))
|
||||
return false;
|
||||
if (!session->getDtc<ParticipantManagement::DataInterface>(m_ppmDtc))
|
||||
return false;
|
||||
if (!session->getDtc<ProjectDataManagement::DataInterface>(m_pdmDtc))
|
||||
return false;
|
||||
if (!session->getDtc<AreaEffectSimulation::DataInterface>(m_aesDtc))
|
||||
return false;
|
||||
|
||||
session->getDtc<InfrastructureManagement::DataInterface>(m_ismDtc);
|
||||
session->getForeignGuiInterface<SituationMap::ForeignGuiInterface>(m_sitMapGuiIfc);
|
||||
|
||||
// Geht ueber alle BuildingHitLineInfos in der Map
|
||||
m_bldDtc->buildingHitLineInfos([this](const BuildingHitLineInfo &data)
|
||||
{
|
||||
if (data.id() == m_hitLineId)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Found Building HitLine Id: " << data.id();
|
||||
m_hitLineInfo = data;
|
||||
m_participantOriginator = m_ppmDtc->participant(data.originatorParticipantId());
|
||||
showHitLineInfos();
|
||||
}
|
||||
});
|
||||
|
||||
if (!m_isInitialized)
|
||||
WARNING_LOG(m_logger) << "Non Building HitLineInfo data found for id: " << m_hitLineId;
|
||||
return m_isInitialized;
|
||||
} // end of init()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void HitLineInfoDialog::showHitLineInfos()
|
||||
{
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " id:" << m_hitLineId;
|
||||
|
||||
if (m_hitLineInfo.buildingId() <= 0 || m_hitLineInfo.originatorParticipantId() <= 0)
|
||||
return;
|
||||
|
||||
m_ui->lblHitLineId->setText(QString::number(m_hitLineId));
|
||||
|
||||
// SampleTime
|
||||
m_ui->lblSampleTime->setText(DTG::toStringMSec(m_hitLineInfo.sampleTime()));
|
||||
|
||||
// Originator
|
||||
m_ui->lblOriginatorEquipNr->setText(QString::number(m_participantOriginator.equipmentNumber().get()));
|
||||
|
||||
m_ui->lblOriginatorParty->setText(ParticipantManagement::trPartyName(m_ppmDtc->party(m_hitLineInfo.originatorPartyId()).name()));
|
||||
|
||||
m_ui->lblOriginatorDesignator->setText(QString::fromStdString(m_participantOriginator.designator()));
|
||||
|
||||
m_ui->lblOriginatorTactIdentifier->setText(QString::fromStdString(m_participantOriginator.tacticalIdentifier()));
|
||||
|
||||
m_ui->lblOriginatorType->setText(ParticipantManagement::trTypeName(m_ppmDtc->type(m_participantOriginator.typeId()).name()));
|
||||
|
||||
QString mgrs = LtsCoordTrans::mgrsFromGeographic(m_hitLineInfo.originatorPos().lon(), m_hitLineInfo.originatorPos().lat());
|
||||
if (qFuzzyIsNull(m_hitLineInfo.originatorPos().z()))
|
||||
m_ui->lblOriginatorPos->setText(tr("Position: %1").arg(mgrs));
|
||||
else
|
||||
m_ui->lblOriginatorPos->setText(tr("Position: %1 %2").arg(mgrs).arg(m_hitLineInfo.originatorPos().z()));
|
||||
|
||||
// Building
|
||||
m_ui->lblBuildingId->setText(QString::number(m_hitLineInfo.buildingId()));
|
||||
if (m_ismDtc)
|
||||
m_ui->lblBuildingName->setText(m_ismDtc->getBuildingDisplayName(m_hitLineInfo.buildingId()));
|
||||
|
||||
mgrs = LtsCoordTrans::mgrsFromGeographic(m_hitLineInfo.buildingPos().lon(), m_hitLineInfo.buildingPos().lat());
|
||||
if (qFuzzyIsNull(m_hitLineInfo.buildingPos().z()))
|
||||
m_ui->lblBuildingPos->setText(tr("Position: %1").arg(mgrs));
|
||||
else
|
||||
m_ui->lblBuildingPos->setText(tr("Position: %1 %2").arg(mgrs).arg(m_hitLineInfo.buildingPos().z()));
|
||||
|
||||
Buildings::BuildingState bldState = m_bldDtc->buildingState((m_hitLineInfo.buildingId()));
|
||||
ProjectDataManagement::VulnerabilityState st = bldState.vulnerabilityState();
|
||||
m_ui->lblBuildingStatus->setText(toString(st));
|
||||
|
||||
m_ui->lblBuildingDamagePercent->setText(QString::number(bldState.damagePercent()));
|
||||
|
||||
m_ui->lblBuildingDamageOldPercent->setText(QString::number(bldState.damagePercentOld()));
|
||||
|
||||
m_ui->lblChargeTypeId->setText(QString::number(m_hitLineInfo.chargeTypeId()));
|
||||
|
||||
m_ui->lblChargeType->setText(m_pdmDtc->trChargeTypeShortName(m_hitLineInfo.chargeTypeId()));
|
||||
|
||||
const QString contamination = getContaminations(m_hitLineInfo.contaminationStates());
|
||||
m_ui->lbContamination->setHidden(contamination.isEmpty());
|
||||
m_ui->lblContamination->setHidden(contamination.isEmpty());
|
||||
m_ui->lblContamination->setText(contamination.isEmpty() ? QStringLiteral("-") : contamination);
|
||||
|
||||
m_isInitialized = true;
|
||||
}
|
||||
|
||||
QString HitLineInfoDialog::getContaminations(const std::vector< Buildings::ContaminationState > &contaminationStates) const
|
||||
{
|
||||
QStringList contaminationList;
|
||||
for(const auto &cs : contaminationStates){
|
||||
AreaEffectSimulation::AesItem item;
|
||||
m_aesDtc->aesItemFromId(cs.aesId(), item);
|
||||
const ProjectDataManagement::GearClass &gc = m_pdmDtc->gearClassFromChargeTypeId(item.chargeStruct().chargeTypeId());
|
||||
if (gc == ProjectDataManagement::GearClass::Unknown)
|
||||
continue;
|
||||
QString gearClassName = ProjectDataManagement::toString(gc).trimmed();
|
||||
gearClassName.chop(gearClassName.size()-1); // get only the First letter: Nuclear -> 'N'
|
||||
if (!contaminationList.contains(gearClassName))
|
||||
contaminationList.append(gearClassName);
|
||||
}
|
||||
return contaminationList.join(QStringLiteral("+"));
|
||||
}
|
||||
// end of showHitLineInfos()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void HitLineInfoDialog::onFindOriginatorOnMap()
|
||||
{
|
||||
if (m_sitMapGuiIfc)
|
||||
m_sitMapGuiIfc->centerMapToParticipant(m_participantOriginator.id());
|
||||
} // end of onFindOriginatorOnMap()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void HitLineInfoDialog::onFindBuildingOnMap()
|
||||
{
|
||||
if (m_sitMapGuiIfc)
|
||||
m_sitMapGuiIfc->centerMapToBuildingObject(m_hitLineInfo.buildingId());
|
||||
} // end of onFindBuildingOnMap()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
} // namespace Buildings
|
||||
Reference in new issue
Block a user