119 lines
4.5 KiB
C++
Executable File
119 lines
4.5 KiB
C++
Executable File
/**
|
|
* @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 <ParticipantManagement/Gui/Common/ppmcommon_export.h>
|
|
#include "participant_firing_unit_validator.h"
|
|
|
|
#include <LtsWidgets/lts_frameless_dialog.h>
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <LtsWidgets/lts_dialog_button_box.h>
|
|
#include <QModelIndex>
|
|
|
|
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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
|
|
const TemplateData &data,
|
|
const bool addItem = false);
|
|
|
|
void setUsedEquipmentNumbers(const QSet<int> &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<int> 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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &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<int> &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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &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
|