137 lines
5.0 KiB
C++
Executable File
137 lines
5.0 KiB
C++
Executable File
/**
|
|
* @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 <ParticipantManagement/Gui/Common/ppmcommon_export.h>
|
|
#include <LtsWidgets/lts_frameless_dialog.h>
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
|
|
const ParticipantData &data,
|
|
bool isOrgChart = false,
|
|
const bool addItem = false,
|
|
const QVector<int> &usedEquipmentNumbers = QVector<int>());
|
|
|
|
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<int32_t> 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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
|
|
const ParticipantData &data = ParticipantData(),
|
|
const bool addItem = false,
|
|
const QVector<int> &usedEquipmentNumbers = QVector<int>());
|
|
|
|
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<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &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
|