Files
qt5-legatus-legacy/Lts/Plugins/ParticipantManagement/Gui/ParticipantEdit/participant_edit.h
T
2026-08-13 18:33:10 +02:00

131 lines
3.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* GUI Plugin for ParticipantManagement - Participant Edit
* $Id$
* $HeadURL$
* $Author$
* Created by Patric Karwat, SLSE, 2016-10-17
*/
#pragma once
#include <Services/ParticipantManagement/ppm_dtc.h>
#include <Services/ParticipantManagement/ppm_ftc.h>
#include <Plugins/ParticipantManagement/ppm_gui_combobox_plugin_interface.h>
#include <LtsWidgets/lts_dialog.h>
#include <LtsSession/lts_session.h>
#include <LtsUtilsGuiDds/request_helper.h>
class QTreeView;
namespace AdvancedSymbology
{
class ForeignDataInterface;
}
namespace Ui
{
class ParticipantEdit;
}
namespace NGL
{
class INGLLogger;
}
namespace LtsDataView
{
class SearchModel;
}
namespace ParticipantManagement
{
class FiringUnitValidator;
class ParticipantEditModel;
class ParticipantEditItem;
class ParticipantTreeEditHandler;
class ParticipantTreeFilterProxyModel;
class ParticipantTableFilterProxyModel;
class ParticipantEdit : public LtsWidgets::LtsDialog
{
Q_OBJECT
using BaseClass = LtsWidgets::LtsDialog;
public:
ParticipantEdit(LtsSession::LtsSession *session, bool asSupportService, QWidget *parent = nullptr);
~ParticipantEdit();
bool init(const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc,
const std::shared_ptr<ParticipantManagement::Interface::Ftc> &ftc,
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asbIfc);
private:
void retranslate() override;
bool apply() override;
void showIsSimulated();
void lock() override;
void unlock() override;
protected slots:
void onEnaDisa(); // enable/disable the widgets
void onAddItem();
void onEditItem();
void onPartyChanged();
void onPrint();
void onChangesMade();
void onBeautifyTreeView();
private slots:
void onSwitchToTreeView();
void onSwitchToTableView();
void onFilterChanged(LtsDataView::SearchModel *from, LtsDataView::SearchModel *to);
void onSortTableView(int column, Qt::SortOrder order);
void onSelectionChangedInTree(const QItemSelection &selected, const QItemSelection &deselected);
void onSelectionChangedInTable(const QItemSelection &selected, const QItemSelection &deselected);
void onColumnWidthChanged(QTreeView *to, const int &column, const int &width);
private:
void tableColumnOrganiserSetting() override;
bool m_asSupportService;
QAction *m_actionRemove;
QAction *m_actionEdit;
ParticipantTreeEditHandler *m_pTreehandler{nullptr};
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtc;
std::shared_ptr<ParticipantManagement::Interface::Ftc> m_ftc;
std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> m_ppmGuiCbxIfc;
std::shared_ptr<AdvancedSymbology::ForeignDataInterface> m_asb;
ParticipantEditItem *m_newItemDlg{nullptr};
LtsSession::LtsSession *m_session{nullptr};
static int s_preselectedParty;
ParticipantEditModel *m_model{nullptr};
ParticipantTreeFilterProxyModel *m_proxyTree{nullptr};
ParticipantTableFilterProxyModel *m_proxyTable{nullptr};
QPushButton *m_pbTreeView{nullptr};
QPushButton *m_pbTableView{nullptr};
QPushButton *m_pbTreeViewDummy{nullptr};
QPushButton *m_pbTableViewDummy{nullptr};
FiringUnitValidator *m_firingUnitValidator{nullptr};
Ui::ParticipantEdit *m_ui;
NGL::INGLLogger &m_logger;
};
} //ParticipantManagement