diff --git a/plugins/amda/include/AmdaParser.h b/plugins/amda/include/AmdaParser.h new file mode 100644 index 0000000..de87657 --- /dev/null +++ b/plugins/amda/include/AmdaParser.h @@ -0,0 +1,23 @@ +#ifndef SCIQLOP_AMDAPARSER_H +#define SCIQLOP_AMDAPARSER_H + +#include "AmdaGlobal.h" + +#include + +#include + +Q_DECLARE_LOGGING_CATEGORY(LOG_AmdaParser) + +class DataSourceItem; + +struct SCIQLOP_AMDA_EXPORT AmdaParser { + /** + * Creates a data source tree from a JSON file + * @param filePath the path of the JSON file to read + * @return the root of the created data source tree, nullptr if the file couldn't be parsed + */ + static std::unique_ptr readJson(const QString &filePath) noexcept; +}; + +#endif // SCIQLOP_AMDAPARSER_H diff --git a/plugins/amda/src/AmdaParser.cpp b/plugins/amda/src/AmdaParser.cpp new file mode 100644 index 0000000..c218c1e --- /dev/null +++ b/plugins/amda/src/AmdaParser.cpp @@ -0,0 +1,11 @@ +#include "AmdaParser.h" + +#include + +Q_LOGGING_CATEGORY(LOG_AmdaParser, "AmdaParser") + +std::unique_ptr AmdaParser::readJson(const QString &filePath) noexcept +{ + /// @todo ALX + return nullptr; +} diff --git a/plugins/amda/src/AmdaPlugin.cpp b/plugins/amda/src/AmdaPlugin.cpp index 4a35bf2..555755d 100644 --- a/plugins/amda/src/AmdaPlugin.cpp +++ b/plugins/amda/src/AmdaPlugin.cpp @@ -1,6 +1,8 @@ #include "AmdaPlugin.h" +#include "AmdaParser.h" #include +#include #include @@ -24,7 +26,12 @@ void AmdaPlugin::initialize() auto dataSourceUid = dataSourceController.registerDataSource(DATA_SOURCE_NAME); // Sets data source tree - /// @todo ALX + 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"); + } } else { qCWarning(LOG_AmdaPlugin()) << tr("Can't access to SciQlop application");