#include "RegisterToolbox.h"
#include "QToolAbstract.h"
#include "QMergeRasterProcessDialog.h"
#include "QImportGF3StripL1ADataset.h"
#include "QComplex2AmpPhase.h"
#include "QRDOrthProcessClass.h"
#include "QOrthSlrRaster.h"
#include "QImageSARRFPC.h"
#include "QSimulationBPImage.h"
#include "DEMLLA2XYZTool.h"
#include "QClipRasterByRowCols.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();
}

SARSimlulationRFPCToolButton::SARSimlulationRFPCToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"仿真工具库");
	this->toolname = QString(u8"RFPC");
}

SARSimlulationRFPCToolButton::~SARSimlulationRFPCToolButton()
{
}

void SARSimlulationRFPCToolButton::excute()
{

	QImageSARRFPC* dialog = new QImageSARRFPC();
	dialog->show();
}

SARSimulationTBPImageToolButton::SARSimulationTBPImageToolButton(QWidget* parent) :QToolAbstract(parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"成像工具库");
	this->toolname = QString(u8"TimeBP仿真成像");
}

SARSimulationTBPImageToolButton::~SARSimulationTBPImageToolButton()
{
}

void SARSimulationTBPImageToolButton::excute()
{
	QSimulationBPImage* dialog = new QSimulationBPImage;
	dialog->show();
}

void RegisterPreToolBox(RasterProcessTool* mainWindows)
{
	GF3ImportDataToolButton* items1 = new	GF3ImportDataToolButton(nullptr);
	Complex2AmpPhaseToolButton* items2 = new	Complex2AmpPhaseToolButton(nullptr);
	QRDOrthProcessClassToolButton* items3 = new	QRDOrthProcessClassToolButton(nullptr);
	QOrthSlrRasterToolButton* items4 = new		QOrthSlrRasterToolButton(nullptr);
	MergeRasterProcessToolButton* items5 = new		MergeRasterProcessToolButton(nullptr);
	SARSimlulationRFPCToolButton* items6 = new		SARSimlulationRFPCToolButton(nullptr);
	SARSimulationTBPImageToolButton* items7 = new SARSimulationTBPImageToolButton(nullptr);
	DEMLLA2XYZToolButton* items8 = new DEMLLA2XYZToolButton(nullptr);
	ClipRasterByRowCols* items9 = new ClipRasterByRowCols(nullptr);

	emit mainWindows->addBoxToolItemSIGNAL(items1);
	emit mainWindows->addBoxToolItemSIGNAL(items2);
	emit mainWindows->addBoxToolItemSIGNAL(items3);
	emit mainWindows->addBoxToolItemSIGNAL(items4);
	emit mainWindows->addBoxToolItemSIGNAL(items5);
	emit mainWindows->addBoxToolItemSIGNAL(items6);
	emit mainWindows->addBoxToolItemSIGNAL(items7);
	emit mainWindows->addBoxToolItemSIGNAL(items8);
	emit mainWindows->addBoxToolItemSIGNAL(items9);

}

DEMLLA2XYZToolButton::DEMLLA2XYZToolButton(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"DEM转坡度");
}

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

ClipRasterByRowCols::ClipRasterByRowCols(QWidget* parent)
{
	this->toolPath = QVector<QString>(0);
	this->toolPath.push_back(u8"基础处理");
	this->toolname = QString(u8"裁剪影像根据行列号");
}

ClipRasterByRowCols::~ClipRasterByRowCols()
{

}

void ClipRasterByRowCols::excute()
{
	QClipRasterByRowCols* dialog = new QClipRasterByRowCols;
	dialog->show();
}
