Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+220
@@ -0,0 +1,220 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* MeteoDataManagement - Static Meteo Data Edit Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by hjl, SLSE, 2016-10-17
|
||||
*/
|
||||
|
||||
#include "esc_order_edit.h"
|
||||
#include "ui_esc_order_edit.h"
|
||||
|
||||
#include <EffectShowManagement/esm_translation.h>
|
||||
|
||||
|
||||
namespace EffectShowClient
|
||||
{
|
||||
//=============================================================================
|
||||
OrderEdit::OrderEdit(const Order &order, bool fireReadinessAvailable, QWidget *parent)
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkCancel)
|
||||
, m_ftc(nullptr)
|
||||
, m_ui(new Ui::OrderEdit)
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_order(order)
|
||||
, m_fireReadinessAvailable(fireReadinessAvailable)
|
||||
, m_logger(getLogger("OrderEdit"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
}
|
||||
//=============================================================================
|
||||
OrderEdit::~OrderEdit()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
//=============================================================================
|
||||
bool OrderEdit::init(const std::shared_ptr<EffectShowClient::Interface::Ftc> &ftc, EffectShowManagement::OrderConfirmation_e order)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "OrderEdit::init()";
|
||||
|
||||
if (!ftc)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "OrderEdit::init() Invalid shared_ptr!";
|
||||
return false;
|
||||
}
|
||||
|
||||
m_ftc = ftc;
|
||||
|
||||
// Set a consistent font size for the comboBox
|
||||
QFont cbFont = m_ui->cbOrderConfirmation->font();
|
||||
#ifdef TABLET_MODE
|
||||
m_ui->cbxAnswer->setMinimumHeight(50);
|
||||
cbFont.setPointSizeF(cbFont.pointSizeF()*1.5);
|
||||
#endif
|
||||
m_ui->cbOrderConfirmation->setFont(cbFont);
|
||||
m_ui->cbxAnswer->setFont(cbFont);
|
||||
|
||||
createOrderList();
|
||||
if (order == EffectShowManagement::OrderConfirmation_e::WaitingForAcceptance)
|
||||
showOrder();
|
||||
else
|
||||
{
|
||||
m_ui->cbOrderConfirmation->addItem(m_orderList[order.underlying()]);
|
||||
m_ui->cbOrderConfirmation->setEnabled(false);
|
||||
slotChangesMade();
|
||||
setUnchangeable(true);
|
||||
}
|
||||
|
||||
if (m_ui->cbxAnswer->lineEdit())
|
||||
{
|
||||
m_ui->cbxAnswer->lineEdit()->setFont(cbFont);
|
||||
m_ui->cbxAnswer->lineEdit()->setMaxLength(39);
|
||||
}
|
||||
m_ui->cbxAnswer->addItem(QString());
|
||||
m_ui->cbxAnswer->addItem(tr("Remaining time not sufficient"));
|
||||
m_ui->cbxAnswer->addItem(tr("Not enough ammunition for order"));
|
||||
m_ui->cbxAnswer->addItem(tr("Presentation vehicle has got stuck"));
|
||||
m_ui->cbxAnswer->addItem(tr("Commanding a fixed restricted area"));
|
||||
m_ui->cbxAnswer->addItem(tr("Command into a variable restricted area"));
|
||||
m_ui->cbxAnswer->addItem(tr("Maximum permissible working time exceeded"));
|
||||
m_ui->cbxAnswer->addItem(tr("Order executed, no confirmation"));
|
||||
|
||||
m_uiRequirements->addRequirement({m_ui->lblOrderConfirmation, [this]() { return (m_ui->cbOrderConfirmation->currentIndex() != -1); }});
|
||||
m_uiRequirements->addRequirement({m_ui->lblAnswer, [this]() { return checkForAnswerUiRequirement(); }});
|
||||
|
||||
return true;
|
||||
}
|
||||
//=============================================================================
|
||||
bool OrderEdit::apply()
|
||||
{
|
||||
// Send modified data via FTC call
|
||||
return m_requestHelper->startSingleRequest([this]()
|
||||
{
|
||||
OrderModifyRequest orderModifyRequest;
|
||||
|
||||
int key = m_orderList.key(m_ui->cbOrderConfirmation->currentText());
|
||||
EffectShowManagement::OrderConfirmation_e oc = EffectShowManagement::OrderConfirmation_e::inner_enum(key);
|
||||
orderModifyRequest.orderConfirmation(oc);
|
||||
|
||||
orderModifyRequest.answerText(m_ui->cbxAnswer->currentText().toStdString());
|
||||
|
||||
orderModifyRequest.id(m_order.id());
|
||||
|
||||
return m_ftc->orderModifyRequest(orderModifyRequest, this);
|
||||
});
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void OrderEdit::retranslate()
|
||||
{
|
||||
if (m_order.typeOfOrder() == 0)
|
||||
translate(m_ui, tr("Edit relocation order"));
|
||||
else
|
||||
translate(m_ui, tr("Edit Effectshow Order"));
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
bool OrderEdit::checkForAnswerUiRequirement() const
|
||||
{
|
||||
if (m_ui->cbOrderConfirmation->currentIndex() == -1)
|
||||
return true;
|
||||
|
||||
int key = m_orderList.key(m_ui->cbOrderConfirmation->currentText());
|
||||
return !(((key == EffectShowManagement::OrderConfirmation_e_def::Nonacceptance) ||
|
||||
(key == EffectShowManagement::OrderConfirmation_e_def::Abort)) &&
|
||||
m_ui->cbxAnswer->currentText().isEmpty());
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void OrderEdit::showOrder()
|
||||
{
|
||||
QStringList orderList;
|
||||
|
||||
switch (m_order.orderConfirmation().underlying())
|
||||
{
|
||||
case EffectShowManagement::OrderConfirmation_e_def::WaitingForAcceptance:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::OrderAcceptance]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::DriveOff]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::PositionReached];
|
||||
|
||||
if (m_order.typeOfOrder() != 0 && m_fireReadinessAvailable)
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness];
|
||||
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Nonacceptance];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::OrderAcceptance:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::DriveOff]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::InterruptRelocation]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::PositionReached];
|
||||
|
||||
if (m_order.typeOfOrder() != 0 && m_fireReadinessAvailable)
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness];
|
||||
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::DriveOff:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::InterruptRelocation]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::PositionReached];
|
||||
|
||||
if (m_order.typeOfOrder() != 0 && m_fireReadinessAvailable)
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness];
|
||||
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::PositionReached:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::InterruptRelocation];
|
||||
if (m_fireReadinessAvailable)
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness];
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::FiringReadiness:
|
||||
// orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::InterruptExecution]
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::Execution:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::InterruptRelocation:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::DriveOff]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::PositionReached];
|
||||
if (m_order.typeOfOrder() != 0 && m_fireReadinessAvailable)
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness];
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
case EffectShowManagement::OrderConfirmation_e_def::InterruptExecution:
|
||||
//orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::FiringReadiness]
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::OrderCarriedOut]
|
||||
<< m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
default:
|
||||
orderList << m_orderList[EffectShowManagement::OrderConfirmation_e_def::Abort];
|
||||
break;
|
||||
}
|
||||
m_ui->cbOrderConfirmation->addItems(orderList);
|
||||
m_ui->cbOrderConfirmation->setCurrentIndex(-1);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void OrderEdit::createOrderList()
|
||||
{
|
||||
EffectShowManagement::OrderConfirmation_e oc = EffectShowManagement::OrderConfirmation_e_def::WaitingForAcceptance;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::OrderAcceptance;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::DriveOff;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::PositionReached;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::FiringReadiness;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::Execution;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::InterruptExecution;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::OrderCarriedOut;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::Abort;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::Nonacceptance;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
oc = EffectShowManagement::OrderConfirmation_e_def::InterruptRelocation;
|
||||
m_orderList[oc.underlying()] = EffectShowManagement::toString(oc);
|
||||
}
|
||||
|
||||
} // namespace EffectShowClient
|
||||
Reference in new issue
Block a user