123 lines
4.8 KiB
C++
Executable File
123 lines
4.8 KiB
C++
Executable File
/**
|
|
* Handler for the HMI language
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include "object_effect_show_actor_relocation.h"
|
|
|
|
#include "initialization.h"
|
|
|
|
namespace EffectShowManagement
|
|
{
|
|
|
|
ObjectEffectShowActorRelocation::ObjectEffectShowActorRelocation(Initialization *mainHandler)
|
|
: m_mainHandler(mainHandler)
|
|
, m_logger(getLogger("ObjectEffectShowActorRelocation"))
|
|
{
|
|
}
|
|
//=============================================================================
|
|
ObjectEffectShowActorRelocation::~ObjectEffectShowActorRelocation()
|
|
{
|
|
if (m_data.id > 0)
|
|
m_mainHandler->dds()->dts()->removeEffectShowActorRelocationByKey(m_data.id);
|
|
}
|
|
//=============================================================================
|
|
Core::FunctionReplyObject ObjectEffectShowActorRelocation::createObject(const Database::EsmEffectShowActorRelocation &data)
|
|
{
|
|
m_data = data;
|
|
if (m_data.id <= 0)
|
|
{
|
|
if (!m_mainHandler->db()->insert(m_data))
|
|
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Effect Show Actor Relocation into database."));
|
|
|
|
DEBUG_LOG(m_logger) << "New Effect Show Actor Relocation Id: " << m_data.id;
|
|
}
|
|
|
|
// Publish Data via DTS
|
|
onPublishData();
|
|
|
|
return Core::FunctionReplyObject(m_data.id);
|
|
}
|
|
//=============================================================================
|
|
Core::FunctionReplyObject ObjectEffectShowActorRelocation::updateObject(const Database::EsmEffectShowActorRelocation &data)
|
|
{
|
|
if (data.id <= 0)
|
|
return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Object not valid/blocked"));
|
|
|
|
m_data = data;
|
|
|
|
if (!m_mainHandler->db()->update(m_data))
|
|
return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Error updating EffectShowActorRelocation into database"));
|
|
|
|
DEBUG_LOG(m_logger) << "Data changed for EffectShowActorRelocation Id: " << m_data.id;
|
|
|
|
// Publish Data via DTS
|
|
onPublishData();
|
|
|
|
return Core::FunctionReplyObject(m_data.id);
|
|
}
|
|
//=============================================================================
|
|
Core::FunctionReplyObject ObjectEffectShowActorRelocation::removeObject()
|
|
{
|
|
if (!m_mainHandler->db()->removeEsmEffectShowActorRelocation(m_data.id))
|
|
return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "EffectShowActorRelocation %1 can not be removed")).arg(m_data.id);
|
|
|
|
return Core::FunctionReplyObject(m_data.id);
|
|
}
|
|
//=============================================================================
|
|
void ObjectEffectShowActorRelocation::onPublishData()
|
|
{
|
|
|
|
EffectShowManagement::EffectShowActorRelocation ddsData;
|
|
ddsData.id(m_data.id);
|
|
ddsData.esmParticipantId(m_data.esmParticipantId);
|
|
ddsData.arrival_time(m_data.arrivalTime);
|
|
ddsData.position(Core::GeoPosition2D(m_data.position.x(), m_data.position.y()));
|
|
ddsData.info(m_data.info.toStdString());
|
|
ddsData.orderConfirmation(EffectShowManagement::OrderConfirmation_e::inner_enum(m_data.orderConfirmation));
|
|
ddsData.answerText(m_data.answertText.toStdString());
|
|
ddsData.isDeleted(false);
|
|
ddsData.isUsed(false);
|
|
|
|
INFO_LOG(m_logger) << "Publish EsmEffectShowActorRelocation-data to dds (" << m_data.id << ") ...";
|
|
|
|
if (!m_mainHandler->dds()->dts()->publish(ddsData))
|
|
ERROR_LOG(m_logger) << "Error publishing EsmEffectShowActorRelocation-data to dds";
|
|
}
|
|
//=============================================================================
|
|
ConvertToTab::RelocationOrder_t ObjectEffectShowActorRelocation::getRelocationOrder() const
|
|
{
|
|
ConvertToTab::RelocationOrder_t order;
|
|
order.centerPosition = Core::GeoPosition2D(m_data.position.x(), m_data.position.y());
|
|
order.executionTime = m_data.arrivalTime / 1000; // ms -> seconds
|
|
order.infoText = m_data.info;
|
|
order.idRelocation = m_data.id;
|
|
return order;
|
|
}
|
|
//=============================================================================
|
|
ConvertToTab::RetractOrder_t ObjectEffectShowActorRelocation::getRetractOrder() const
|
|
{
|
|
ConvertToTab::RetractOrder_t order;
|
|
order.id = m_data.id; // ID effect show actor relocation
|
|
order.orderType = 0; // relocation order
|
|
return order;
|
|
}
|
|
//=============================================================================
|
|
Database::EsmEffectShowActorRelocation ObjectEffectShowActorRelocation::ddsToDb(const EffectShowManagement::EffectShowActorRelocation &ddsData)
|
|
{
|
|
Database::EsmEffectShowActorRelocation dbData;
|
|
|
|
dbData.id = ddsData.id();
|
|
dbData.esmParticipantId = ddsData.esmParticipantId();
|
|
dbData.arrivalTime = ddsData.arrival_time().get();
|
|
dbData.position = QPointF(ddsData.position().lon(), ddsData.position().lat());
|
|
dbData.info = QString::fromStdString(ddsData.info());
|
|
dbData.orderConfirmation = ddsData.orderConfirmation().underlying();
|
|
dbData.answertText = QString::fromStdString(ddsData.answerText());
|
|
return dbData;
|
|
}
|
|
//=============================================================================
|
|
} // Namespace EffectShowManagement
|