/** * @RDE_HEADER@ * HMI Plugin for ParticipantManagement - Template Edit Item Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2016-10-05 */ #pragma once #include "participant_edit_item_widget_base.h" #include #include "participant_firing_unit_validator.h" #include #include #include #include namespace ParticipantManagement { class ParticipantTemplateEditItemWidget final : public ParticipantEditItemWidgetBase { Q_OBJECT public: explicit ParticipantTemplateEditItemWidget(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const QModelIndex &workingIndex, const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const TemplateData &data, const bool addItem = false); void setUsedEquipmentNumbers(const QSet &usedEquipmentNumbers) { m_usedEquipmentNumbers = usedEquipmentNumbers; } void setFiringUnitRestrictions(ParticipantTemplateEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions, FiringUnitValidator *firingUnitValidator, const int &unitGearClassTyp); void setIsAdler(bool isAdler) {m_isAdler = isAdler;} protected: void setData() override; void setDesignatorData() override; public: void onAddItem() override; bool onEditItem() override; protected: int editTypeId() const override { return m_editData.typeId(); } int currentPartyId() const override { return 0; } bool checkEquipNo(int equipNo); Q_SIGNALS: void addItem(const QModelIndex &parent, const TemplateData &newData); void updateItem(const QModelIndex &index, const TemplateData &editData); private: QSet m_usedEquipmentNumbers; TemplateData m_editData; QModelIndex m_workingIndex; bool m_isAdler; }; class PPMCOMMON_EXPORT ParticipantTemplateEditItem final : public LtsWidgets::LtsFramelessDialog { Q_OBJECT public: ParticipantTemplateEditItem(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const QModelIndex &workingIndex, const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const TemplateData &data = TemplateData(), const bool addItem = false); void setFiringUnitRestrictions(ParticipantTemplateEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions, FiringUnitValidator *firingUnitValidator, const int unitGearClassType); void setIsAdler(bool isAdler) {m_editItemWidget->setIsAdler(isAdler);} public Q_SLOTS: void setUsedEquipmentNumbers(const QSet &usedEquipmentNumbers) { m_editItemWidget->setUsedEquipmentNumbers(usedEquipmentNumbers); } Q_SIGNALS: void addItem(const QModelIndex &parent, const TemplateData &newData); void updateItem(const QModelIndex &index, const TemplateData &editData); private: ParticipantTemplateEditItemWidget *m_editItemWidget; LtsWidgets::LtsDialogButtonBox *m_buttonBox; }; class PPMCOMMON_EXPORT ParticipantTemplateEditItemTab final : public LtsWidgets::LtsDialog { Q_OBJECT public: ParticipantTemplateEditItemTab(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const QModelIndex &workingIndex, const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const TemplateData &data = TemplateData()); Q_SIGNALS: void addItem(int &row, const QModelIndex &parent, const TemplateData &newData, bool asCopy); void updateItem(const QModelIndex &index, const TemplateData &editData); private: void retranslate() override; bool apply() override; private: ParticipantTemplateEditItemWidget *m_editItemWidget; }; } // namespace ParticipantManagement