/** * @RDE_HEADER@ * Pairing of IED-objects * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLEA, 2017-07-28 */ #pragma once #include #include #include namespace ParticipantManagement { namespace Interface { class Dtc; } } namespace SituationMap{ class ForeignGuiInterface; } namespace AdvancedSymbology { class ForeignDataInterface; } namespace GuezIedManagement { namespace Interface { class Dtc; } class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:gim.info") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: explicit GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return ForeignGuiInterface::pluginName(); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay; } }; class InterfaceImpl final : public QObject, public GuezIedManagement::ForeignGuiInterface, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); QString pluginName() { return ForeignGuiInterface::pluginName(); } QVector getActions() override; QString menuGroup() const override { return tr("IED Management"); } bool fetchInterfaces() override; void clearInterfaces() override; // ForeignDataInterface void showInfoWindow(const QVector &iedEntityIds) override; void showInfoWindow(int iedEntityId) override; private: LtsWidgets::LtsDialog *onShowInfoWindow(QWidget *parent, int iedEntityId); std::shared_ptr m_dtc; std::shared_ptr m_ppmDtc; std::shared_ptr m_situationIfc; std::shared_ptr m_asbIfc; }; } // namespace GuezIedManagement