- Integrated the file import into the main interface (not as a plugin anymore)
[mldemos:mldemos.git] / Core / dataImporter.h
1 #ifndef _DATA_IMPORTER_H_
2 #define _DATA_IMPORTER_H_
3
4 #include "parser.h"
5 #include <interfaces.h>
6 #include <QFileDialog>
7 #include <QTableView>
8 #include <QDebug>
9
10 namespace Ui {
11     class DataImporterDialog;
12 }
13 class DataImporter : public QObject, public InputOutputInterface
14 {
15         Q_OBJECT
16         Q_INTERFACES(InputOutputInterface)
17
18 public:
19         const char* QueryClassifierSignal() {return SIGNAL(QueryClassifier(std::vector<fvec>));}
20         const char* QueryRegressorSignal() {return SIGNAL(QueryRegressor(std::vector<fvec>));}
21         const char* QueryDynamicalSignal() {return SIGNAL(QueryDynamical(std::vector<fvec>));}
22         const char* QueryClustererSignal() {return SIGNAL(QueryClusterer(std::vector<fvec>));}
23         const char* QueryMaximizerSignal() {return SIGNAL(QueryMaximizer(std::vector<fvec>));}
24     const char* SetDataSignal() {return SIGNAL(SetData(std::vector<fvec>, ivec, std::vector<ipair>, bool));}
25         const char* SetTimeseriesSignal() {return SIGNAL(SetTimeseries(std::vector<TimeSerie>));}
26         const char* FetchResultsSlot() {return SLOT(FetchResults(std::vector<fvec>));}
27         const char* DoneSignal() {return SIGNAL(Done(QObject *));}
28     QObject *object(){return this;}
29     QString GetName(){return "DataImporter";}
30
31         void Start();
32         void Stop();
33     QStringList GetHeaders(){return headers;}
34
35     DataImporter();
36     ~DataImporter();
37
38 private:
39     Ui::DataImporterDialog *gui;
40         QDialog *guiDialog;
41     CSVParser *inputParser;
42     QStringList headers;
43
44     bool saveFile(const QString &filename, QIODevice *data);
45
46 signals:
47         void Done(QObject *);
48     void SetData(std::vector<fvec> samples, ivec labels, std::vector<ipair> trajectories, bool bProjected);
49         void SetTimeseries(std::vector<TimeSerie> series);
50     void SetDimensionNames(QStringList headers);
51         void QueryClassifier(std::vector<fvec> samples);
52         void QueryRegressor(std::vector<fvec> samples);
53         void QueryDynamical(std::vector<fvec> samples);
54         void QueryClusterer(std::vector<fvec> samples);
55         void QueryMaximizer(std::vector<fvec> samples);
56 public slots:
57         void FetchResults(std::vector<fvec> results);
58         void Closing();
59     void Parse(QString filename);
60         void LoadFile();
61     void SendData();
62 private slots:
63     void classIgnoreChanged();
64     void headerChanged();
65     void classColumnChanged(int value);
66 };
67
68 #endif // _DATA_IMPORTER_H_