|
|
|
|
#include "WorkBenchHandler.h"
|
|
|
|
|
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
|
|
|
|
|
#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
|
|
|
|
|
#include "FITK_Kernel/FITKCore/FITKDirFileTools.h"
|
|
|
|
|
#include "FITK_Kernel/FITKCore/FITKThreadPool.h"
|
|
|
|
|
#include <QDir>
|
|
|
|
|
|
|
|
|
|
void CFDPostWorkBenchHandler::execHandler()
|
|
|
|
|
{
|
|
|
|
|
//文件数量
|
|
|
|
|
const int n = this->getInputFilesCount();
|
|
|
|
|
for (int i = 0; i < n; ++i)
|
|
|
|
|
{
|
|
|
|
|
//遍历文件
|
|
|
|
|
AppFrame::IOFileInfo finfo = this->getInputFileInfo(i);
|
|
|
|
|
|
|
|
|
|
if (finfo._isFile)
|
|
|
|
|
{
|
|
|
|
|
this->importFile(finfo);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
this->importFolder(finfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CFDPostWorkBenchHandler::execOutput()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CFDPostWorkBenchHandler::importFile(AppFrame::IOFileInfo finfo)
|
|
|
|
|
{
|
|
|
|
|
QString fileName = QString("%1/%2").arg(finfo._path).arg(finfo._name);
|
|
|
|
|
//获取操作器
|
|
|
|
|
Core::FITKActionOperator* oper = FITKOPERREPO->getOperatorT<Core::FITKActionOperator>("actionOpen");
|
|
|
|
|
if (oper == nullptr) return;
|
|
|
|
|
oper->setArgs("files", fileName);
|
|
|
|
|
//执行操作
|
|
|
|
|
oper->execProfession();
|
|
|
|
|
Core::FITKThreadPool::getInstance()->wait();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CFDPostWorkBenchHandler::importFolder(AppFrame::IOFileInfo finfo)
|
|
|
|
|
{
|
|
|
|
|
QDir dir(finfo._path);
|
|
|
|
|
if (!dir.exists()) return;
|
|
|
|
|
QString type = QString("*.%1").arg(finfo._suffix);
|
|
|
|
|
dir.setNameFilters(QStringList() << type);
|
|
|
|
|
// 获取文件信息列表
|
|
|
|
|
QFileInfoList fileInfoList = dir.entryInfoList();
|
|
|
|
|
if (fileInfoList.isEmpty())return;
|
|
|
|
|
|
|
|
|
|
QString filename = finfo._path + "/" + finfo._name + "..." + finfo._suffix;
|
|
|
|
|
|
|
|
|
|
//获取操作器
|
|
|
|
|
Core::FITKActionOperator* oper = FITKOPERREPO->getOperatorT<Core::FITKActionOperator>("actionOpen");
|
|
|
|
|
if (oper == nullptr) return;
|
|
|
|
|
oper->setArgs("files", filename);
|
|
|
|
|
//执行操作
|
|
|
|
|
oper->execProfession();
|
|
|
|
|
Core::FITKThreadPool::getInstance()->wait();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|