126 lines
3.5 KiB
C++
Executable File
126 lines
3.5 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* HMI Plugin for ParticipantManagement - Participant OrgChart Dialog
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Patric Karwat, SLSE, 2017-04-07
|
|
*/
|
|
|
|
#pragma once
|
|
#include <participant_org_chart_helper.h>
|
|
#include <QWidget>
|
|
#include <QtWebChannel/QWebChannel>
|
|
//PPM
|
|
#include <Plugins/ParticipantManagement/Gui/Common/ppmcommon_export.h>
|
|
#include <Services/ParticipantManagement/ppm_dtc.h>
|
|
#include <ParticipantManagement/logger.h>
|
|
|
|
//asb
|
|
#include <Plugins/AdvancedSymbology/asb_data_plugin_interface.h>
|
|
|
|
// Qt
|
|
#include <QPointer>
|
|
|
|
|
|
namespace Ui
|
|
{
|
|
class LtsParticipantsOrgChart;
|
|
}
|
|
|
|
namespace ParticipantManagement
|
|
{
|
|
|
|
class WebNofitifier : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit WebNofitifier(QObject *parent = nullptr);
|
|
|
|
Q_PROPERTY(QString jsonString READ jsonString WRITE setJsonString NOTIFY jsonStringChanged)
|
|
// Q_PROPERTY(QString updateString MEMBER m_updateString NOTIFY updateStringChanged)
|
|
Q_PROPERTY(QString updateString READ jsonString WRITE setJsonString NOTIFY updateStringChanged)
|
|
Q_INVOKABLE void startEdit(const QString &data);
|
|
Q_INVOKABLE void startDelete(const QString &data);
|
|
Q_INVOKABLE void startDBClick(int id);
|
|
Q_INVOKABLE void doMoveChanged();
|
|
Q_INVOKABLE void gotHierarchy(const QString &data);
|
|
|
|
|
|
void setJsonString(const QString &string);
|
|
QString jsonString() { return m_currentJsonString; }
|
|
void getWholeHierarchy();
|
|
|
|
public Q_SLOTS:
|
|
void onSetUpdateString(int ddsId, const QJsonObject &updateString);
|
|
void onTimerTick();
|
|
|
|
signals:
|
|
void jsonStringChanged(const QString &newJson);
|
|
void updateStringChanged(const QString &updateJson);
|
|
void edit(const QString &data);
|
|
void remove(const QString &data);
|
|
void dbClick(int);
|
|
void movedParticipant();
|
|
void getHierarchy();
|
|
void newHierarchy(const QString &data);
|
|
private :
|
|
QString m_currentJsonString;
|
|
QString m_updateString;
|
|
QMap<int, QString> m_dataToChange;
|
|
QTimer *m_updateTimer;
|
|
};
|
|
|
|
//----------------------------------------------------------------------------
|
|
class LtsParticipantsOrgChart : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit LtsParticipantsOrgChart(QWidget *parent);
|
|
~LtsParticipantsOrgChart();
|
|
bool init(const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asbIfc,
|
|
bool useSymData = true,
|
|
bool isMenuEnabled = false,
|
|
bool isDragEnabled = false);
|
|
void loadParty(int partyId);
|
|
bool loadTemplate(int templateRootId);
|
|
void updateParticipant(int participantId);
|
|
void sendToOrgChart(int participantId, const QJsonObject &json);
|
|
void getWholeHierarchy();
|
|
|
|
private slots:
|
|
void onParticipantOrgChart_MimeDataHelperFinished();
|
|
void onSingleParticipantOrgChart_MimeDataHelperFinished();
|
|
|
|
signals:
|
|
void startEdit(const QString &);
|
|
void startDelete(const QString &);
|
|
void startDBClick(int);
|
|
void gotNewHierarchy(const QString &);
|
|
void movedParticipant();
|
|
void sendUpdateString(int, const QJsonObject &);
|
|
|
|
private:
|
|
int m_partyId;
|
|
bool m_useSymData;
|
|
bool m_isMenuEnabled;
|
|
bool m_isDragEnabled;
|
|
QString m_scriptString;
|
|
QString m_dataSource;
|
|
QString m_html;
|
|
QWebChannel *m_channel;
|
|
WebNofitifier *m_notifier;
|
|
|
|
QPointer<ParticipantOrgChart_MimeDataHelper> m_participantOrgChart_MimeDataHelper;
|
|
QMap<int, QSharedPointer<ParticipantOrgChart_MimeDataHelper>> m_participantOrgChart_MimeDataHelperMap;
|
|
|
|
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtc;
|
|
std::shared_ptr<AdvancedSymbology::ForeignDataInterface> m_asbItc;
|
|
Ui::LtsParticipantsOrgChart *m_ui;
|
|
|
|
LOGGER_T m_logger;
|
|
};
|
|
|
|
}
|