#ifndef BINDROUTEDIALOG_H
#define BINDROUTEDIALOG_H

#include <QDialog>
#include <QVector3D>

#include "Engine/UGDatasetVector.h"
#include "bindroutetablemodel.h"
#include "routeglobalvariant.h"


//MSVC编译器界面显示乱码问题
#if _MSC_VER >= 1600
    #pragma execution_character_set("utf-8")
#endif

namespace Ui {
class bindRouteDialog;
}

using namespace UGC;

class bindRouteDialog : public QDialog
{
    Q_OBJECT

public:
    explicit bindRouteDialog(QWidget *parent = nullptr);
    ~bindRouteDialog();

    qint16 getRouteID();
    qint16 getRouteType(); //获取航线类型
    QString getRouteText();

    void setDataset(UGDatasetVector* dv);
    void addRouteTypeItem(); //添加航线类型


private:
    Ui::bindRouteDialog *ui;

    UGDatasetVector* dv;
    BindRouteTableModel* model;
    QString bindState;
    QString routeFeatures;
    QString routeNumber;
    QString routeType;
    QMap<int,QVector3D> points;
    qreal routeHeight;
    RouteGlobalVariant routeGVar;

    QMap<int,QString> RouteType;

private:
    void addRouteNumberItem(UGRecordsetPtr res); //添加航线编号
    void showTableData(QString routeNumber,QMap<int,QVector3D> points,
                       QString routeFeatures,QString bindState); //显示表格数据

    UGRecordsetPtr queryFeature(UGDatasetVector* dv,UGString filter=_U(""));
    void getNodePoints(UGRecordsetPtr res,QMap<int,QVector3D>&points);  //获取节点

private slots:
    void on_routeNumberCombox_currentIndexChanged(int index);
    void on_routeTypeCombox_currentIndexChanged(int index);
//    void resizeContents();
    void on_bindRouteCancelBtn_clicked();
    void on_bindRouteStartBtn_clicked();
};

#endif // BINDROUTEDIALOG_H