/** * @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 #include 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