/** * @RDE_HEADER@ * ExerciseManangement - Exercise Purpose Dialog * $Id: exm_edit_dialog.h 41137 2018-04-20 08:50:55Z schroeder_m $ * $HeadURL: svn://slssvn/TDS/branches/product/devel/trunk/Lts/Plugins/ExerciseManagement/Gui/ExerciseEdit/exm_edit_dialog.h $ * $Author: schroeder_m $ * Created by Malte Schröder, SLSE, 2018-04-21 */ #include "exm_exercise_purpose.h" #include "ui_exm_exercise_purpose.h" #include namespace ExerciseManagement { ExerciseManagementExercisePurpose::ExerciseManagementExercisePurpose(const QString &menuGroup, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_ui(new Ui::ExerciseManagementExercisePurpose) , m_dtc(nullptr) , m_ftc(nullptr) , m_session(nullptr) , m_menuGroup(menuGroup) , m_exercise() , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("ExerciseManagementExercisePurpose")) { m_ui->setupUi(this); m_uiRequirements->addRequirement( { m_ui->lblForces, [this]() { return (!m_ui->pteForces->toPlainText().isEmpty()); } } ); m_uiRequirements->addRequirement( { m_ui->lblDesc, [this]() { return (!m_ui->pteDescription->toPlainText().isEmpty()); } } ); setOnlineHelpFilename(QStringLiteral("Situation-Exercise_Purpose")); } ExerciseManagementExercisePurpose::~ExerciseManagementExercisePurpose() { delete m_ui; } bool ExerciseManagementExercisePurpose::init(LtsSession::LtsSessionDataDds *session) { m_session = session; if (!m_session->getDtc(m_dtc)) return false; if (!m_session->getFtc(m_ftc)) return false; m_exercise = m_dtc->exercise(m_session->exerciseId()); m_ui->pteForces->setPlainText(QString::fromStdString(m_exercise.forces())); m_ui->pteDescription->setPlainText(QString::fromStdString(m_exercise.description())); return true; } void ExerciseManagementExercisePurpose::retranslate() { translate(m_ui, m_exercise, tr("Exercise Purpose")); tryLockTopicNew(); } bool ExerciseManagementExercisePurpose::apply() { if (m_exercise.id() > 0) { ExerciseModifyRequest request; // Update Data of Existing Exercise request.id(m_exercise.id()); request.beginTime(m_exercise.beginTime()); request.endTime(m_exercise.endTime()); request.name(m_exercise.name()); request.sendToWMS(m_exercise.sendToWMS()); request.linkedExerciseId(m_exercise.linkedExerciseId()); request.trainingAreaId(m_exercise.trainingAreaId()); request.radioGroupId(m_exercise.radioGroupId()); request.symbolFillTypeId(m_exercise.symbolFillTypeId()); request.activePhaseId(m_exercise.activePhaseId()); request.defaultTimeZone(m_exercise.defaultTimeZone()); request.forces(m_ui->pteForces->toPlainText().toStdString()); request.description(m_ui->pteDescription->toPlainText().toStdString()); request.newState(m_exercise.state()); if(!m_requestHelper->startSingleRequest( [this, request]() { m_ftc->enableExerciseModify(); return m_ftc->exerciseModifyRequest(request, this); }) ) return false; } return true; } }