Skip to content
Snippets Groups Projects

Scenario Manager: auto reload on changes from disk

Merged Tobias Gröger requested to merge feature/scenario-manager-auto-reload into master
Files
3
@@ -23,18 +23,22 @@
*/
#include "DetailedApplicationController.h"
#include "ScenarioListController.h"
#include <stdlib.h>
#include <string>
#include <QDesktopServices>
#include <QMessageBox>
#include <QUrl>
#include <ArmarXCore/util/ScenarioManagerCommon/data_structure/Scenario.h>
#include <ArmarXCore/util/ScenarioManagerCommon/parser/iceparser.h>
#include <ArmarXCore/util/ScenarioManagerCommon/executor/StopStrategyFactory.h>
#include <ArmarXCore/util/ScenarioManagerCommon/executor/StarterFactory.h>
#include <ArmarXCore/util/ScenarioManagerCommon/executor/StopStrategyFactory.h>
#include <ArmarXCore/util/ScenarioManagerCommon/executor/StopperFactory.h>
#include <QDesktopServices>
#include <QUrl>
#include <QMessageBox>
#include <string>
#include <stdlib.h>
#include <ArmarXCore/util/ScenarioManagerCommon/parser/iceparser.h>
#include "ScenarioListController.h"
using namespace ScenarioManager;
@@ -42,22 +46,29 @@ using namespace Controller;
using namespace Exec;
using namespace Data_Structure;
DetailedApplicationController::DetailedApplicationController(ExecutorPtr executor, QObject* parent) : QObject(parent), executor(executor), showingStartable(false)
DetailedApplicationController::DetailedApplicationController(ExecutorPtr executor,
QObject* parent) :
QObject(parent), executor(executor), showingStartable(false)
{
QObject::connect(&propertyAdderView, SIGNAL(create(std::string, std::string)),
this, SLOT(setProperty(std::string, std::string)));
QObject::connect(&propertyAdderView,
SIGNAL(create(std::string, std::string)),
this,
SLOT(setProperty(std::string, std::string)));
}
DetailedApplicationController::~DetailedApplicationController()
{
}
void DetailedApplicationController::setDetailedApplicationView(DetailedApplicationView* ptr)
void
DetailedApplicationController::setDetailedApplicationView(DetailedApplicationView* ptr)
{
view = ptr;
}
void DetailedApplicationController::showApplicationInstance(ApplicationInstancePtr application, ScenarioItem* item)
void
DetailedApplicationController::showApplicationInstance(ApplicationInstancePtr application,
ScenarioItem* item)
{
if (application.get() == nullptr)
{
@@ -67,13 +78,16 @@ void DetailedApplicationController::showApplicationInstance(ApplicationInstanceP
currentApplication = application;
currentScenario = ScenarioPtr();
executor->loadAndSetCachedProperties(application, Parser::IceParser::getCacheDir(), false, false);
executor->loadAndSetCachedProperties(
application, Parser::IceParser::getCacheDir(), false, false);
application->load();
view->setVisible(true);
view->showApplicationInstance(application, item);
}
void DetailedApplicationController::showApplication(ScenarioManager::Data_Structure::ApplicationPtr application)
void
DetailedApplicationController::showApplication(
ScenarioManager::Data_Structure::ApplicationPtr application)
{
if (application.get() == nullptr)
{
@@ -82,14 +96,16 @@ void DetailedApplicationController::showApplication(ScenarioManager::Data_Struct
showingStartable = false;
currentApplication = ApplicationInstancePtr();
currentScenario = ScenarioPtr();
ScenarioManager::Data_Structure::ApplicationPtr app(new ScenarioManager::Data_Structure::Application(*application));
ScenarioManager::Data_Structure::ApplicationPtr app(
new ScenarioManager::Data_Structure::Application(*application));
executor->loadAndSetCachedProperties(app, Parser::IceParser::getCacheDir());
view->setVisible(true);
view->showApplication(app);
}
void DetailedApplicationController::showScenario(ScenarioPtr scenario)
void
DetailedApplicationController::showScenario(ScenarioPtr scenario)
{
if (scenario.get() == nullptr)
{
@@ -99,11 +115,13 @@ void DetailedApplicationController::showScenario(ScenarioPtr scenario)
currentApplication = ApplicationInstancePtr();
currentScenario = scenario;
scenario->reloadGlobalConf();
view->setVisible(true);
view->showScenario(scenario);
}
void DetailedApplicationController::showPackage(PackagePtr package)
void
DetailedApplicationController::showPackage(PackagePtr package)
{
if (package.get() == nullptr)
{
@@ -115,7 +133,8 @@ void DetailedApplicationController::showPackage(PackagePtr package)
view->showPackage(package);
}
void DetailedApplicationController::showInStandardEditor()
void
DetailedApplicationController::showInStandardEditor()
{
if (showingStartable)
{
@@ -132,7 +151,8 @@ void DetailedApplicationController::showInStandardEditor()
}
}
void DetailedApplicationController::setProperty(std::string name, std::string value)
void
DetailedApplicationController::setProperty(std::string name, std::string value)
{
if (showingStartable)
{
@@ -144,7 +164,8 @@ void DetailedApplicationController::setProperty(std::string name, std::string va
}
else if (currentScenario.get() != nullptr)
{
currentScenario->getGlobalConfig()->defineOptionalProperty<std::string>(name, "::NOT_DEFINED::", "Custom Property");
currentScenario->getGlobalConfig()->defineOptionalProperty<std::string>(
name, "::NOT_DEFINED::", "Custom Property");
currentScenario->getGlobalConfig()->getProperties()->setProperty(name, value);
currentScenario->save();
showScenario(currentScenario);
@@ -152,7 +173,8 @@ void DetailedApplicationController::setProperty(std::string name, std::string va
}
}
void DetailedApplicationController::start()
void
DetailedApplicationController::start()
{
if (showingStartable)
{
@@ -168,13 +190,15 @@ void DetailedApplicationController::start()
}
catch (IceGrid::ServerStartException& ex)
{
showWarningDialog("Ice had an launching error. Please make sure your remote launch settings are correct");
showWarningDialog("Ice had an launching error. Please make sure your remote launch "
"settings are correct");
}
}
}
}
void DetailedApplicationController::startScenario(ScenarioPtr scenario)
void
DetailedApplicationController::startScenario(ScenarioPtr scenario)
{
StatusManager statusManager;
@@ -218,8 +242,8 @@ void DetailedApplicationController::startScenario(ScenarioPtr scenario)
// }
}
void DetailedApplicationController::stop()
void
DetailedApplicationController::stop()
{
if (showingStartable)
{
@@ -234,7 +258,8 @@ void DetailedApplicationController::stop()
}
}
void DetailedApplicationController::save()
void
DetailedApplicationController::save()
{
if (showingStartable)
{
@@ -252,31 +277,34 @@ void DetailedApplicationController::save()
}
catch (IceGrid::ServerStartException& ex)
{
showWarningDialog("Ice had an launching error. Please make sure your remote launch settings are correct");
showWarningDialog("Ice had an launching error. Please make sure your remote launch "
"settings are correct");
}
}
}
}
void DetailedApplicationController::deleteProperty(std::string name)
void
DetailedApplicationController::deleteProperty(std::string name)
{
}
void DetailedApplicationController::showPropertyAddView()
void
DetailedApplicationController::showPropertyAddView()
{
propertyAdderView.exec();
}
void DetailedApplicationController::showWarningDialog(QString message)
void
DetailedApplicationController::showWarningDialog(QString message)
{
QMessageBox box;
box.setText(message);
box.exec();
}
void DetailedApplicationController::setIceAdmin(IceGrid::AdminPrx iceAdmin)
void
DetailedApplicationController::setIceAdmin(IceGrid::AdminPrx iceAdmin)
{
this->iceAdmin = iceAdmin;
}
Loading