-
Notifications
You must be signed in to change notification settings - Fork 26
/
biosignalmldatastoreplugin.cpp
131 lines (98 loc) · 5.35 KB
/
biosignalmldatastoreplugin.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*******************************************************************************
Copyright (C) The University of Auckland
OpenCOR is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenCOR is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
//==============================================================================
// BioSignalML data store plugin
//==============================================================================
#include "biosignalmldatastoredata.h"
#include "biosignalmldatastoredialog.h"
#include "biosignalmldatastoreexporter.h"
#include "biosignalmldatastoreplugin.h"
#include "corecliutils.h"
#include "coreguiutils.h"
#include "datastoredialog.h"
//==============================================================================
#include <QApplication>
#include <QMainWindow>
#include <QSettings>
//==============================================================================
namespace OpenCOR {
namespace BioSignalMLDataStore {
//==============================================================================
PLUGININFO_FUNC BioSignalMLDataStorePluginInfo()
{
Descriptions descriptions;
descriptions.insert("en", QString::fromUtf8("a BioSignalML specific data store plugin."));
descriptions.insert("fr", QString::fromUtf8("une extension de magasin de données spécifique à BioSignalML."));
return new PluginInfo(PluginInfo::DataStore, true, false,
QStringList() << "BioSignalMLAPI" << "DataStore",
descriptions);
}
//==============================================================================
// I18n interface
//==============================================================================
void BioSignalMLDataStorePlugin::retranslateUi()
{
// We don't handle this interface...
// Note: even though we don't handle this interface, we still want to
// support it since some other aspects of our plugin are
// multilingual...
}
//==============================================================================
// Data store interface
//==============================================================================
QString BioSignalMLDataStorePlugin::dataStoreName() const
{
// Return the name of the data store
return "BioSignalML";
}
//==============================================================================
DataStore::DataStoreData * BioSignalMLDataStorePlugin::getData(const QString &pFileName,
DataStore::DataStore *pDataStore) const
{
// Ask which data should be exported, as well as some other information
BiosignalmlDataStoreDialog biosignalmlDataStoreDialog(pDataStore, Core::mainWindow());
if (biosignalmlDataStoreDialog.exec()) {
// Now that we have the information we need, we can ask for the name of
// the BioSignalML file where to do the export
QString biosignalmlFilter = tr("BioSignalML File")+" (*.biosignalml)";
QString fileName = Core::getSaveFileName(tr("Export To BioSignalML"),
Core::newFileName(pFileName, tr("Data"), false, "biosignalml"),
QStringList() << biosignalmlFilter,
&biosignalmlFilter);
if (!fileName.isEmpty()) {
return new BiosignalmlDataStoreData(fileName,
biosignalmlDataStoreDialog.name(),
biosignalmlDataStoreDialog.author(),
biosignalmlDataStoreDialog.description(),
tr("Generated by %1 at %2 from %3.").arg(Core::version())
.arg(QDateTime::currentDateTimeUtc().toString(Qt::ISODate))
.arg(pDataStore->uri()),
pDataStore,
biosignalmlDataStoreDialog.selectedData());
}
}
return 0;
}
//==============================================================================
DataStore::DataStoreExporter * BioSignalMLDataStorePlugin::dataStoreExporterInstance(DataStore::DataStoreData *pDataStoreData) const
{
// Return an instance of our BioSignalML data store exporter
return new BiosignalmlDataStoreExporter(pDataStoreData);
}
//==============================================================================
} // namespace BioSignalMLDataStore
} // namespace OpenCOR
//==============================================================================
// End of file
//==============================================================================