/** * @RDE_HEADER@ * Dialog for Simulated Movement * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLSE, 2018-01-02 */ #pragma once #include #include #include #include #include #include #include #include //DDS #include #include #include "logger.h" namespace Ui { class WaypointsEdit; } namespace LtsWidgets { class LtsDateTimeEdit; } namespace CentralEffectSimulation { class TypeModel; class ParticipantMoveDialog: public LtsWidgets::LtsDialog , protected CentralEffectSimulation::Interface::Ftc::SimulatedMovementRemoveReplyHandler , protected CentralEffectSimulation::Interface::Ftc::SimulatedMovementModifyReplyHandler { Q_OBJECT public: enum SegementColumns { Name, IdleTime, Speed, Position }; explicit ParticipantMoveDialog(QWidget *parent = nullptr); ~ParticipantMoveDialog(); bool init(LtsSession::LtsSessionDataDds *session, const std::shared_ptr &ppmDtc, const std::shared_ptr &cesDtc, const ParticipantManagement::ParticipantData &data); void retranslate() override; //virtual functions from CentralEffectSimulation::Interface::Ftc void onSimulatedMovementRemoveReply(const Core::FunctionReplyObject &replyObject) override; void onSimulatedMovementModifyReply(const Core::FunctionReplyObject &replyObject) override; void showPreview(bool show); signals: void closeDialog(int32_t participantId); private: //std::vector coordWidgets() const override; //void setData(const Borderline &borderline, bool copy); void enableUiElements(bool enable); void initTableHeader(); void insertPos(const double lon, const double lat, const QString &identifier, const int idleTime, const double speed); //void onApply(); void clearCoordinates(); void clearContent(); bool hasValidEffectStart(LtsWidgets::LtsDateTimeEdit *dte) const; bool apply() override; SimulatedMovement requestContent() const; QByteArray simulatedMovementToJson() const; SimulatedMovement jsonToSimulatedMovement(const QByteArray &content) const; private slots: void onGetPolyline(); void onPolylineData(const QPolygonF &polyline); // callback for onGetPolyline() void onSimulatedMovementChanged(const CentralEffectSimulation::SimulatedMovement &data, DataModification modType); void onFocus(); void onExportButtonClicked(); void onImportButtonClicked(); private: std::shared_ptr m_cesDtc; std::shared_ptr m_ftc; std::shared_ptr m_sitMapGuiIfc; std::shared_ptr m_flmGui; Ui::WaypointsEdit *m_ui; LtsSession::LtsSessionDataDds *m_session; ParticipantManagement::ParticipantData m_participantData; int m_id; LtsUtils::RequestHelper *m_requestHelper; QPolygonF m_polyline; LOGGER_T m_logger; }; } // namespace CentralEffectSimulation