/** * 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