/** * @RDE_HEADER@ * HMI Plugin for ParticipantManagement - Participant Edit Item Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2016-10-17 */ #pragma once #include "participant_edit_item_widget_base.h" #include #include #include #include "participant_firing_unit_validator.h" namespace LtsWidgets { class LtsDialogButtonBox; } namespace ParticipantManagement { class ParticipantEditItemWidget final : public ParticipantEditItemWidgetBase { Q_OBJECT public: explicit ParticipantEditItemWidget(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const QModelIndex &workingIndex, int partyId, const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const ParticipantData &data, bool isOrgChart = false, const bool addItem = false, const QVector &usedEquipmentNumbers = QVector()); void setFiringUnitRestrictions(ParticipantEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions, FiringUnitValidator *firingUnitValidator, const int &unitGearClassType); void setIsAdler(bool isAdler) { m_isAdler = isAdler; } protected: void setData() override; void setDesignatorData() override; public: void onAddItem() override; bool onEditItem() override; bool collectParticipantData(ParticipantManagement::ParticipantData &data); protected Q_SLOTS: void onTbAssignmentClicked(); void setAssignmentButton(); void onEqNoChanged(); protected: int editTypeId() const override { return m_editData.typeId(); } int currentPartyId() const override { return m_editData.partyId() > 1 ? m_editData.partyId() : m_partyId; } private: ParticipantManagement::ParticipantAssignState getAssignmentState() const; Q_SIGNALS: void addItem(const QModelIndex &parent, const ParticipantData &newData); void updateItem(const QModelIndex &parent, const ParticipantData &editData); private: QModelIndex m_workingIndex; ParticipantManagement::ParticipantAssignState m_currentAssignState; int m_partyId; bool m_isOrgChart; bool m_isAdler {false}; ParticipantData m_editData; QVector m_alreadyAddedEquipmentNumbers; }; class PPMCOMMON_EXPORT ParticipantEditItem final : public LtsWidgets::LtsFramelessDialog { Q_OBJECT public: ParticipantEditItem(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const QModelIndex &workingIndex, int partyId, const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const ParticipantData &data = ParticipantData(), const bool addItem = false, const QVector &usedEquipmentNumbers = QVector()); void setIsAdler(bool isAdler) { m_editItemWidget->setIsAdler(isAdler); } void setFiringUnitRestrictions(ParticipantEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions, FiringUnitValidator *firingUnitValidator, const int unitGearClassType); Q_SIGNALS: void addItem(const QModelIndex &parent, const ParticipantData &newData); void updateItem(const QModelIndex &parent, const ParticipantData &editData); private: ParticipantEditItemWidget *m_editItemWidget; LtsWidgets::LtsDialogButtonBox *m_buttonBox; }; class PPMCOMMON_EXPORT ParticipantEditItemTab final : public LtsWidgets::LtsDialog { Q_OBJECT public: ParticipantEditItemTab(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr); bool init(const std::shared_ptr &dtc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asb, const ParticipantData &data = ParticipantData(), bool isOrgChart = false); Q_SIGNALS: void addItem(int &row, const QModelIndex &parent, const ParticipantData &newData, bool asCopy); void updateItem(const QModelIndex &parent, const ParticipantData &editData); private: void retranslate() override; bool apply() override; private: ParticipantEditItemWidget *m_editItemWidget; }; } // namespace ParticipantManagement