Subversion Repositories public iLand

Rev

Rev 1221 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
671 werner 1
/********************************************************************************************
2
**    iLand - an individual based forest landscape and disturbance model
3
**    http://iland.boku.ac.at
4
**    Copyright (C) 2009-  Werner Rammer, Rupert Seidl
5
**
6
**    This program is free software: you can redistribute it and/or modify
7
**    it under the terms of the GNU General Public License as published by
8
**    the Free Software Foundation, either version 3 of the License, or
9
**    (at your option) any later version.
10
**
11
**    This program is distributed in the hope that it will be useful,
12
**    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
**    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
**    GNU General Public License for more details.
15
**
16
**    You should have received a copy of the GNU General Public License
17
**    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
********************************************************************************************/
19
 
242 werner 20
#ifndef CLIMATECONVERTER_H
21
#define CLIMATECONVERTER_H
22
#include <QObject>
793 werner 23
#include <QJSEngine>
24
#include <QJSValue>
25
 
242 werner 26
#include "expression.h"
27
 
28
class ClimateConverter : public QObject
29
{
30
    Q_OBJECT
31
    Q_PROPERTY(QString fileName WRITE setFileName READ fileName);
32
    Q_PROPERTY(QString tableName WRITE setTableName READ tableName);
244 werner 33
    Q_PROPERTY(QString database WRITE setDatabase READ database);
34
    Q_PROPERTY(bool captions WRITE setCaptions READ captions);
35
 
36
 
242 werner 37
    Q_PROPERTY(QString year WRITE setYear READ year);
38
    Q_PROPERTY(QString month WRITE setMonth READ month);
39
    Q_PROPERTY(QString day WRITE setDay READ day);
40
    Q_PROPERTY(QString temp WRITE setTemp READ temp);
414 werner 41
    Q_PROPERTY(QString minTemp WRITE setMinTemp READ minTemp);
242 werner 42
    Q_PROPERTY(QString prec WRITE setPrec READ prec);
43
    Q_PROPERTY(QString rad WRITE setRad READ rad);
44
    Q_PROPERTY(QString vpd WRITE setVpd READ vpd);
244 werner 45
 
242 werner 46
public:
47
    ClimateConverter(QObject *parent=0);
793 werner 48
    static void addToScriptEngine(QJSEngine &engine); ///< add this class to scripting engine
242 werner 49
    // getters
50
    const QString fileName() const { return mFileName; }
51
    const QString tableName() const { return mTableName; }
244 werner 52
    const QString database() const { return mDatabase; }
53
    bool captions() const { return mCaptions; }
242 werner 54
    const QString year() const { return mYear; }
55
    const QString month() const { return mMonth; }
56
    const QString day() const { return mDay; }
57
    const QString temp() const { return mTemp; }
414 werner 58
    const QString minTemp() const { return mMinTemp; }
242 werner 59
    const QString prec() const { return mPrec; }
60
    const QString rad() const { return mRad; }
61
    const QString vpd() const { return mVpd; }
62
 
63
    // setters
64
    void setFileName(const QString fileName) { mFileName = fileName; }
65
    void setTableName(const QString tableName) { mTableName = tableName; }
244 werner 66
    void setDatabase(const QString db) { mDatabase = db; }
67
    void setCaptions(const bool on) { mCaptions = on; }
242 werner 68
    void setYear(const QString value) { mYear = value; }
69
    void setMonth(const QString value) { mMonth = value; }
70
    void setDay(const QString value) { mDay = value; }
71
    void setTemp(const QString value) { mTemp = value; }
414 werner 72
    void setMinTemp(const QString value) { mMinTemp = value; }
242 werner 73
    void setPrec(const QString value) { mPrec = value; }
74
    void setRad(const QString value) { mRad = value; }
75
    void setVpd(const QString value) { mVpd = value; }
76
 
77
public slots:
78
    void run();
79
 
80
private:
81
    void bindExpression(Expression &expr, int index);
82
    double *mVars[100];
83
    QString mFileName;
84
    QString mTableName;
244 werner 85
    QString mDatabase;
86
    bool mCaptions;
242 werner 87
 
88
    QString mYear;
89
    QString mMonth;
90
    QString mDay;
91
    QString mTemp;
414 werner 92
    QString mMinTemp;
242 werner 93
    QString mPrec;
94
    QString mRad;
95
    QString mVpd;
96
 
97
    Expression mExpYear;
98
    Expression mExpMonth;
99
    Expression mExpDay;
100
    Expression mExpTemp;
414 werner 101
    Expression mExpMinTemp;
242 werner 102
    Expression mExpPrec;
103
    Expression mExpRad;
104
    Expression mExpVpd;
105
 
106
};
107
 
108
 
109
#endif // CLIMATECONVERTER_H