#include "BaseToolbox.h"
#include "QToolAbstract.h"
#include "QImportGF3StripL1ADataset.h"
#include "QComplex2AmpPhase.h"
#include "QRDOrthProcessClass.h"
#include "QOrthSlrRaster.h"
#include "QMergeRasterProcessDialog.h"
#include "RasterMainWidget.h"
#include "ToolBoxWidget.h"
#include "QDEMResampleDialog.h"
#include "DEMLLA2XYZTool.h"
#include "QConvertCoordinateSystemDialog.h"
#include "QResampleRefrenceRaster.h"

GF3ImportDataToolButton::GF3ImportDataToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"数据导入导出");
	this->toolname = QString(u8"导入GF3条带");
}

GF3ImportDataToolButton::~GF3ImportDataToolButton()
{
}

void GF3ImportDataToolButton::excute()
{
	QImportGF3StripL1ADataset* dialog = new QImportGF3StripL1ADataset();
	dialog->show();
}

Complex2AmpPhaseToolButton::Complex2AmpPhaseToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"复数据转换");
}

Complex2AmpPhaseToolButton::~Complex2AmpPhaseToolButton()
{
}

void Complex2AmpPhaseToolButton::excute()
{
	QComplex2AmpPhase* dialog = new QComplex2AmpPhase();
	dialog->show();

}

QRDOrthProcessClassToolButton::QRDOrthProcessClassToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"创建查找表");
}

QRDOrthProcessClassToolButton::~QRDOrthProcessClassToolButton()
{
}

void QRDOrthProcessClassToolButton::excute()
{
	QRDOrthProcessClass* dialog = new QRDOrthProcessClass();
	dialog->show();
}

QOrthSlrRasterToolButton::QOrthSlrRasterToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"图像正射");
}

QOrthSlrRasterToolButton::~QOrthSlrRasterToolButton()
{
}

void QOrthSlrRasterToolButton::excute()
{
	QOrthSlrRaster* dialog = new QOrthSlrRaster();
	dialog->show();
}

MergeRasterProcessToolButton::MergeRasterProcessToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"图像合并");
}

MergeRasterProcessToolButton::~MergeRasterProcessToolButton()
{
}

void MergeRasterProcessToolButton::excute()
{
	QMergeRasterProcessDialog* dialog = new QMergeRasterProcessDialog();
	dialog->show();
}



void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWidget* toolbox)
{
	emit toolbox->addBoxToolItemSIGNAL(new	GF3ImportDataToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	Complex2AmpPhaseToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QRDOrthProcessClassToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QOrthSlrRasterToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	MergeRasterProcessToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QDEMResampleDialogToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QDEMLLA2XYZToolToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QConvertCoordinateSystemToolButton(toolbox));
	emit toolbox->addBoxToolItemSIGNAL(new	QResampleRefrenceRasterToolButton(toolbox));
}

QDEMResampleDialogToolButton::QDEMResampleDialogToolButton(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"DEM重采样");
}

QDEMResampleDialogToolButton::~QDEMResampleDialogToolButton()
{
}

void QDEMResampleDialogToolButton::excute()
{
	QDEMResampleDialog* dialog = new QDEMResampleDialog();
	dialog->show();
}

QDEMLLA2XYZToolToolButton::QDEMLLA2XYZToolToolButton(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"DEM(WGS84)LLA转为XYZ");
}

QDEMLLA2XYZToolToolButton::~QDEMLLA2XYZToolToolButton()
{
}

void QDEMLLA2XYZToolToolButton::excute()
{
	DEMLLA2XYZTool* dialog = new DEMLLA2XYZTool();
	dialog->show();
}

QConvertCoordinateSystemToolButton::QConvertCoordinateSystemToolButton(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"栅格坐标系转换");
}

QConvertCoordinateSystemToolButton::~QConvertCoordinateSystemToolButton()
{
}

void QConvertCoordinateSystemToolButton::excute()
{
	QConvertCoordinateSystemDialog* dialog = new QConvertCoordinateSystemDialog();
	dialog->show();
}

QResampleRefrenceRasterToolButton::QResampleRefrenceRasterToolButton(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"栅格重采样（参考影像）");
}

QResampleRefrenceRasterToolButton::~QResampleRefrenceRasterToolButton()
{
}

void QResampleRefrenceRasterToolButton::excute()
{
	QResampleRefrenceRaster* dialog = new QResampleRefrenceRaster;
	dialog->show();
}
