You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Src/nmNum/nmSubWnd/nmSubWndUtils.cpp

240 lines
6.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "zxLogInstance.h"
#include "iRibbonXmlCmd.h"
#include "nmSubWndMain.h"
#include "nmSubWndGrid.h"
#include "nmSubWndPostprocessing.h"
#include "nmSubWndUtils.h"
#include "nmWxNewNormalDlg.h"
#include "nmWxParaProperty.h"
#include "nmDataDemo.h"
#include "ZxDataProject.h"
#include "zxSysUtils.h"
#ifdef MY_OWN_GRID
#include "iSubWndGrid.h"
#else
#include "nmSubWndDemo.h"
#endif
#include "nmWxWizard.h"
#include "nmWxGridDlg.h"
#include "nmCalculationDefine.h"
#include "nmDataAnalInfo.h"
#include "nmDataAnalRun.h"
#include "nmAnalRun.h"
#include "nmSubWndUtils.h"
iSubWnd* nmSubWndUtils::createSubWnd(iRibbonXmlCmd* pCmdInfo)
{
if (NULL == pCmdInfo) {
return NULL;
}
return createSubWnd(pCmdInfo->m_sID, pCmdInfo->m_sExtInfo);
}
iSubWnd* nmSubWndUtils::createSubWnd(QString sID, QString sExt)
{
iSubWnd* pSubWnd = NULL;
// Here is your own codes
int nID = sID.toInt();
if (nID == 5001) {
// 初始化一个数据类
// TODO先弹窗做新建分析再创建subWnd
nmWxNewNormalDlg dlg(NULL);
if (dlg.exec() == QDialog::Rejected) {
// 对话框被用户显式拒绝
// 在这里处理你的逻辑
return nullptr;
}
// TODO是否已经建立了新建分析
nmSubWndMain* pSubWndMain = new nmSubWndMain(NULL, sExt);
pSubWnd = pSubWndMain;
} else if (nID == 5114) {
double dGridSize = 0.5;
int iGridType = NM_Grid_Triangle;
// 网格大小、类型
nmWxGridDlg dlg(&dGridSize, &iGridType);
if (dlg.exec() == QDialog::Rejected) {
return NULL;
}
// 网格
nmSubWndGrid* pSubWndGrid = new nmSubWndGrid(NULL, sExt);
pSubWnd = pSubWndGrid;
} else if (nID == 5116) {
// 后处理
nmSubWndPostprocessing* pSubWndPostProcessing = new nmSubWndPostprocessing(NULL, sExt);
pSubWnd = pSubWndPostProcessing;
}
if (NULL != pSubWnd) {
// TODO 此处根据需要设置 改变 标识
pSubWnd->setModified(true);
}
return pSubWnd;
}
bool nmSubWndUtils::runCmdBySpecial(iRibbonXmlCmd* pCmdInfo)
{
if (NULL == pCmdInfo) {
return false;
}
return runCmdBySpecial(pCmdInfo->m_sID, pCmdInfo->m_sExtInfo);
}
bool nmSubWndUtils::runCmdBySpecial(QString sID, QString sExt)
{
// Here is your own codes
if (_isSame(sID, "12345")) {
QMessageBox::information(NULL, zxAppID, QObject::tr("I am abc"));
return true;
} else {
return false;
}
}
bool nmSubWndUtils::isEnableOfID_Common(QString sID, QString sName, const bool bLicensed)
{
// 如果是5001即 新建PVT
if (sID.toInt() == 5001) {
return true;
}
// Here is your own codes
if (_isSame(sName, "NmDemo")) {
return (bLicensed);
} else {
return false;
}
}
bool nmSubWndUtils::runCmd_NewAnal()
{
ZxDataProject* pProject = zxCurProject;
Q_ASSERT (NULL != pProject);
nmDataAnalInfo* pAnal = new nmDataAnalInfo();
Q_ASSERT (NULL != pAnal);
pAnal->setCode(pAnal->getDefaultCode(pProject)); //作为工区子节点
QString sName = tr("New Anal %1").arg(ZxBaseUtil::getSysDateTime());
pAnal->setName(sName);
nmAnalRun* pAnalRun = new nmAnalRun();
Q_ASSERT (NULL != pAnalRun);
pAnalRun->setDataAnalInfo(pAnal);
pAnalRun->init();
pAnalRun->refresh();
pAnalRun->setLoaded(true);
// Wizard
nmWxWizard* m_pWxWizard = NULL;
if (NULL != m_pWxWizard) {
delete m_pWxWizard;
m_pWxWizard = NULL;
}
m_pWxWizard = new nmWxWizard();
Q_ASSERT (NULL != m_pWxWizard);
m_pWxWizard->setWsm(nmWxWizard::NM_WSM_All);
m_pWxWizard->appendSubWx(pAnalRun->getWxDataOf(0));
m_pWxWizard->appendSubWx(pAnalRun->getWxDataOf(1));
m_pWxWizard->appendSubWx(pAnalRun->getWxDataOf(2));
m_pWxWizard->initUI();
Q_ASSERT (NULL != m_pWxWizard);
if (m_pWxWizard->exec() != QDialog::Accepted) {
// 删除上面新建
delete pAnalRun;
pAnalRun = NULL;
return false;
}
/*
// 把Anal放入内存并且保存
{
bool bPs3Valid = pAnalRun->isPs3Valid();
nmWxDataBasic* pBasic = dynamic_cast<nmWxDataBasic*>(pAnalRun->getWxDataOf(0));
QString sName = pAnal->getName();
if (NULL != pBasic)
{
sName = pBasic->getAnalName();
QString ss = pBasic->getFluidOption();
pAnal->setAnalType(ss);
bool b = pBasic->isPhaseS();
QString sPhase = (b ? s_Tag_Phase_S : s_Tag_Phase_M);
if (!b && bPs3Valid)
sPhase += QString("(%1)").arg(s_Tag_Phase_PS3);
pAnal->setRemark(sPhase);
}
pAnal->setName(sName);
if (NULL != p)
{
p->setText(0, sName);
}
{
if (NULL != m_pCurDataWell)
pAnal->setWellCode(m_pCurDataWell->getCode());
pAnal->setCreator(ZxBaseUtil::getSysUserName());
pAnal->setCreatedTime(ZxBaseUtil::getSysDateTime());
// pAnal->setModifier(ZxBaseUtil::getSysUserName());
// pAnal->setModifiedTime(ZxBaseUtil::getSysDateTime());
// if (NULL != pBasic)
// {
// sName = pBasic->getAnalName();
// }
// pAnal->setAnalType()
pProject->appendChild(pAnal);
pAnal->save(); //保存入库吗?
// 增加AnalRun的处理
{
nmDataAnalRun* pDataAnalRun = new nmDataAnalRun();
Q_ASSERT (NULL != pDataAnalRun);
pDataAnalRun->setCode(pAnal->getCode());
int n = 0;
QByteArray v1;
if (pAnalRun->getWxDataOf(n++)->saveAsByteArr(v1))
{
pDataAnalRun->setDataBasic(v1);
}
QByteArray v2;
if (pAnalRun->getWxDataOf(n++)->saveAsByteArr(v2))
{
pDataAnalRun->setDataPvt(v2);
}
QByteArray v3;
if (pAnalRun->getWxDataOf(n++)->saveAsByteArr(v3))
{
pDataAnalRun->setDataKrog(v3);
}
QByteArray v4;
if (pAnalRun->saveBasicAsByteArr(v4))
{
pDataAnalRun->setExt1(v4);
}
pDataAnalRun->setLoaded(true);
pDataAnalRun->save();
pAnalRun->setDataAnalRun(pDataAnalRun);
}
}
}
// AnalUtils进行管理
{
if (NULL != p)
{
p->setDataObj(pAnalRun->getDataAnalInfo());
}
m_vecAnalRuns << pAnalRun;
iModuleHelper::setCurAnalRun(pAnalRun, pAnalRun->getAnalId());
if (!bByLeftTree && NULL != m_pMainTreeWxJb)
{
m_pMainTreeWxJb->refresh();
}
}//*/
return true;
}