AmdaPlugin.cpp
42 lines
| 1.3 KiB
| text/x-c
|
CppLexer
Alexandre Leroux
|
r352 | #include "AmdaPlugin.h" | ||
Alexandre Leroux
|
r354 | #include "AmdaParser.h" | ||
Alexandre Leroux
|
r352 | |||
#include <DataSource/DataSourceController.h> | ||||
Alexandre Leroux
|
r354 | #include <DataSource/DataSourceItem.h> | ||
Alexandre Leroux
|
r352 | |||
#include <SqpApplication.h> | ||||
Q_LOGGING_CATEGORY(LOG_AmdaPlugin, "AmdaPlugin") | ||||
namespace { | ||||
/// Name of the data source | ||||
const auto DATA_SOURCE_NAME = QStringLiteral("AMDA"); | ||||
Alexandre Leroux
|
r353 | /// Path of the file used to generate the data source item for AMDA | ||
const auto JSON_FILE_PATH = QStringLiteral(":/samples/AmdaSample.json"); | ||||
Alexandre Leroux
|
r352 | } // namespace | ||
void AmdaPlugin::initialize() | ||||
{ | ||||
if (auto app = sqpApp) { | ||||
// Registers to the data source controller | ||||
auto &dataSourceController = app->dataSourceController(); | ||||
auto dataSourceUid = dataSourceController.registerDataSource(DATA_SOURCE_NAME); | ||||
// Sets data source tree | ||||
Alexandre Leroux
|
r354 | if (auto dataSourceItem = AmdaParser::readJson(JSON_FILE_PATH)) { | ||
dataSourceController.setDataSourceItem(dataSourceUid, std::move(dataSourceItem)); | ||||
} | ||||
else { | ||||
qCCritical(LOG_AmdaPlugin()) << tr("No data source item could be generated for AMDA"); | ||||
} | ||||
Alexandre Leroux
|
r377 | |||
// Sets data provider | ||||
dataSourceController.setDataProvider(dataSourceUid, std::make_unique<AmdaProvider>()); | ||||
Alexandre Leroux
|
r352 | } | ||
else { | ||||
qCWarning(LOG_AmdaPlugin()) << tr("Can't access to SciQlop application"); | ||||
} | ||||
} | ||||