108 lines
3.3 KiB
C++
Executable File
108 lines
3.3 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Main ADLER WebsocketSimulator Widget
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Patric Karwat, ESZS, 2025-03-03
|
|
*/
|
|
|
|
#include "awss_base_layout.h"
|
|
#include "ui_awss_base_layout.h"
|
|
|
|
// widgets
|
|
#include "awss_login.h"
|
|
#include "awss_exercise_chooser.h"
|
|
#include "awss_icd_test.h"
|
|
//other
|
|
#include "awss_websocket_interface.h"
|
|
|
|
#include <QAction>
|
|
#include <QMenu>
|
|
|
|
namespace AdlerWebSocketSimulator {
|
|
|
|
BaseLayout::BaseLayout(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
, m_ui(new Ui::BaseLayout)
|
|
, m_logger(getLogger("BaseLayout"))
|
|
{
|
|
m_ui->setupUi(this);
|
|
connect(m_ui->actionBeenden, &QAction::triggered, this, &BaseLayout::close );
|
|
connect(m_ui->actionReset, &QAction::triggered, this, &BaseLayout::onRestart );
|
|
m_websocketInterface = new WebSocketInterface(this);
|
|
connect(m_websocketInterface, &WebSocketInterface::gotServiceData, this, &BaseLayout::onConnectedToServer);
|
|
connect(m_websocketInterface, &WebSocketInterface::gotExerciseData, this, &BaseLayout::onConnectedToExerciseManagement);
|
|
connect(m_websocketInterface, &WebSocketInterface::gotPartyData, this, &BaseLayout::onExerciseChoosen);
|
|
connect(m_websocketInterface, &WebSocketInterface::connectedToParty, this, &BaseLayout::onPartyAccepted);
|
|
|
|
connect(m_websocketInterface, &WebSocketInterface::statusMessage, this, &BaseLayout::onStatusMessage);
|
|
|
|
m_login = new Login(this);
|
|
connect (m_login, &Login::connectToServer, m_websocketInterface, &WebSocketInterface::connectToServer);
|
|
|
|
|
|
m_ui->stackWidget->addWidget(m_login);
|
|
|
|
m_exerciseChooser = new ExerciseChooser(this);
|
|
connect( m_exerciseChooser, &ExerciseChooser::connectToExercise, m_websocketInterface, &WebSocketInterface::connectToParticipantManagement);
|
|
connect( m_exerciseChooser, &ExerciseChooser::requestExerciseInformation, m_websocketInterface, &WebSocketInterface::connectToExerciseManagement);
|
|
connect( m_exerciseChooser, &ExerciseChooser::connectToProxy, m_websocketInterface, &WebSocketInterface::connectToProxy);
|
|
m_ui->stackWidget->addWidget(m_exerciseChooser);
|
|
|
|
m_icdTest = new ICDTest(this);
|
|
connect(m_icdTest, &ICDTest::messsageToProxy, m_websocketInterface, &WebSocketInterface::sendToProxy);
|
|
connect(m_icdTest, &ICDTest::doRestart, this, &BaseLayout::onRestart);
|
|
connect(m_websocketInterface, &WebSocketInterface::proxyMessage, m_icdTest, &ICDTest::messsageFromProxy);
|
|
|
|
m_ui->stackWidget->addWidget(m_icdTest);
|
|
|
|
|
|
}
|
|
|
|
BaseLayout::~BaseLayout()
|
|
{
|
|
delete m_ui;
|
|
}
|
|
|
|
|
|
void BaseLayout::onConnectedToServer(const QString &message)
|
|
{
|
|
m_ui->stackWidget->setCurrentWidget(m_exerciseChooser);
|
|
m_exerciseChooser->setExercises(message);
|
|
}
|
|
|
|
void BaseLayout::onConnectedToExerciseManagement(const QString &message)
|
|
{
|
|
m_exerciseChooser->setExeciseInfo(message);
|
|
}
|
|
|
|
void BaseLayout::onExerciseChoosen(const QString &message)
|
|
{
|
|
m_ui->stackWidget->setCurrentWidget(m_exerciseChooser);
|
|
m_exerciseChooser->setPartyData(message);
|
|
|
|
}
|
|
|
|
void BaseLayout::onPartyAccepted(int partyId, const QString &partyName, int saaId )
|
|
{
|
|
m_ui->stackWidget->setCurrentWidget(m_icdTest);
|
|
m_icdTest->initParty(partyId, partyName, saaId);
|
|
|
|
//m_icdTest->setParty()
|
|
}
|
|
|
|
void BaseLayout::onStatusMessage(const QString &message)
|
|
{
|
|
m_ui->statusbar->showMessage(message);
|
|
}
|
|
|
|
void BaseLayout::onRestart()
|
|
{
|
|
m_ui->stackWidget->setCurrentWidget(m_login);
|
|
m_websocketInterface->reset();
|
|
|
|
}
|
|
|
|
} // #namespace AdlerWebSocketSimulator
|