#pragma warning( push ,0) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include "QtWellSceneManager.h" #include "LogModuleConsole.h" #include "GeometryUtils.h" #include "WorkflowWidget.h" #include "WorkflowSceneManager.h" #include "BaseObject.h" // #include "PaiObject.h" #include "ObjectID.h" // #include "ObjProject.h" // #include "ModuleGraphicsItem.h" // #include "PaiModuleTree.h" #include "Module.h" #include "WorkflowFile.h" #include "PELibraryModule.h" #include "ModuleManager.h" #include "SaveHelper.h" #include "WellLogWorkflowRunner.h" #include "VecViewCommand.h" #include "OSGFramework.h" // #include "ObjectEvent.h" // #include "VecWindowCommand.h" // #include "VecSceneManager.h" // #include "VecDisplayObjectCommand.h" #include "ModuleInformation.h" #include "GeometryUtils.h" #include "ParameterEditorModel.h" #include "ModuleTreeDlg.h" #include "PaiPushButton.h" // #include "ConsoleOutputWidget.h" #include "PaiWorkflowTemplateTree.h" // #include "ObjWelllogINP.h" // #include "DataTree.h" #include "logmoduleparamers.h" #pragma warning( pop ) // using namespace pai::graphics2d; // using namespace pai; // using namespace pai::workflow; // using namespace pai::gui; // using namespace pai::module; // using namespace pai::graphics; #define GetViewCmdID_RunCurrentWorkflow() "{E7FA515B-4AA6-461D-B4B8-CF7700FBC7FF}" BEGIN_OSGGRAPHICS_NAMESPACE; CModuleConsole *g_pWorkflowConsole(NULL); PAI_WORKFLOWVIEW_EXPORT void SetWorkflowConsole( CModuleConsole *pWorkflowConsole ) { g_pWorkflowConsole = pWorkflowConsole; // CVecWindow *ptWindow = dynamic_cast(g_pWorkflowConsole); // if(ptWindow) // { // if(ptWindow->m_pBObject) { // CVecWindowDocument*pWindowDocument = dynamic_cast(ptWindow->m_pBObject->GetVecWindowDocument()); // if(pWindowDocument) { // if(pWindowDocument->GetVecWindow()&&pWindowDocument->GetVecWindow()->GetSceneManager()) // { // pWindowDocument->GetVecWindow()->GetSceneManager()->SetNo(); // } // } // } // } } PAI_WORKFLOWVIEW_EXPORT CModuleConsole* GetWorkflowConsole() { return g_pWorkflowConsole; } CModuleConsole::CModuleConsole(bool isSingleWellWindow,QWidget *parent): // CVecWindow(parent), m_pVSplitter(NULL), m_parentFolder(NULL), m_control(new WorkflowPluginControl(QUuid())) { m_SingleWellWindow=isSingleWellWindow; m_pWorkflowDataModel=NULL; g_mModuleParamers=NULL; QWidget::installEventFilter(this);//监听 // connect(&ModuleGraphicsItem::m_EventAgent, SIGNAL(DoubleClick(pai::workflow::CModuleInformation* ,bool)), this, // SLOT(slotOpenParameterEditor(pai::workflow::CModuleInformation*, bool))); // connect(&pai::objectmodel::PaiObject::m_EventAgent, // SIGNAL(PropertyChanged(pai::objectmodel::PaiObject* ,const QString&,const QVariant& )), m_control, // SLOT(slotOnWorkflowPropertyChanged(pai::objectmodel::PaiObject* ,const QString&,const QVariant& ))); // connect( (const QObject*)( &GetObjectEvent() ),SIGNAL(SetCurrentWorkflowWindow(QObject*)),this,SLOT(slotSetCurrentWorkflowWindow(QObject *))); // connect( (const QObject*)( &GetObjectEvent() ),SIGNAL(CloseAllWorkflowWindow(QObject *)),this,SLOT(slotCloseAllWorkflowWindow(QObject*))); } CModuleConsole::~CModuleConsole() { // CDataTree *pDatatree=(CDataTree *)::GetProject()->m_pDataTree; // CBaseObject *p=NULL; // if(SystemExiting()) return; // if(this->GetWorkflowWidget()) { // CWellLogWorkflowDataModel* pwellWorkflowDataModel=dynamic_cast(this->GetWorkflowWidget()->GetWorkflow()); // if(pwellWorkflowDataModel) { // PaiObject *pP=pwellWorkflowDataModel->GetParent(); // if(pP&&pP->GetParent()) { // PaiObject *pPp=pP->GetParent(); // if(pP->GetChildrenCount()==1) // { // CBaseObject *pB=dynamic_cast(pP); // if(pDatatree) pDatatree->OnObjectDeleted(pPp,pP); // ::GetProject()->RemoveIDMap(pB); // pPp->RemoveChild(pP); // } // } // if(pDatatree) pDatatree->OnObjectDeleted(pP,pwellWorkflowDataModel->GetPaiObject()); // ::GetProject()->RemoveIDMap(pwellWorkflowDataModel); // // return; // PaiObject *pPp=pP; // p=pwellWorkflowDataModel->GetVecWindowDocument(); // if(!p||!p->GetPaiObject()) return; // pP=p->GetPaiObject()->GetParent(); // if(pDatatree) pDatatree->OnObjectDeleted(pP,p->GetPaiObject()); // ::GetProject()->RemoveIDMap(p); // p=pwellWorkflowDataModel->GetMWVecWindowDocument(); // ::GetProject()->RemoveIDMap(p); // pai::objectmodel::PaiWorkflowDataModel* m_pWorkflow; // std::vector*moduleinfos =pwellWorkflowDataModel->GetWorkflowFile()->GetModuleInfos(); // if(moduleinfos) moduleinfos->clear(); // // delete pwellWorkflowDataModel; // // m_PWorkflowWidget=NULL; // if(pPp) { // pPp->RemoveChild(pwellWorkflowDataModel); // } // m_pBObject=NULL; // } // } // if (NULL !=m_control) // { // delete m_control; // m_control = NULL; // } SetWorkflowConsole(NULL); } void CModuleConsole::SetWorkflowDataModelParent(CBaseObject * aparentFolder) { this->m_parentFolder=aparentFolder; } void CModuleConsole::closeEvent(QCloseEvent *event) { } bool CModuleConsole::eventFilter(QObject *watched, QEvent *event) { if( watched == this ) { //窗口停用,变为不活动的窗口 if(QEvent::WindowActivate == event->type()) { SetWorkflowConsole(this); return true ; } else if(QEvent::WindowDeactivate == event->type()) { return true ; } else return false; } return false ; } void CModuleConsole::CreateWorkflowDataModel(QUuid id) { // //得到数据树上的工作流节点 // CBaseObject *pOSGObject=NULL; // if(!::GetProject()) return; // CObjWelllogRound * pObject=::GetProject()->GetCurrentWelllogRound(); // if(pObject) { // pOSGObject=dynamic_cast(pObject->GetObjectByType(GetClassID_WorkflowFolder(),true)); // if( !pOSGObject) // { // pOSGObject = new CObjectFolder( GetClassID_WorkflowFolder() ); // if(pOSGObject)pObject->AddChild( pOSGObject->GetPaiObject() ); // } // } // if(!pOSGObject) { // if(m_parentFolder==NULL) // { // pOSGObject = ::GetProject()->GetFolderObjectByClassID(GetClassID_WorkflowFolder(),true); // } // else // pOSGObject=m_parentFolder; // } // //新建工作流数据模型 // CWellLogWorkflowDataModel* pNewWorkflowDataModel = new CWellLogWorkflowDataModel(id); // m_pWorkflowDataModel=pNewWorkflowDataModel; // pNewWorkflowDataModel->SetIgnoreSyncDB(true); // pNewWorkflowDataModel->SetSyncabled(false); // pNewWorkflowDataModel->SetDBID(PaiVirtualObject::GenerateVirtualDBID()); // 为新建的工作流设置虚拟DBID // pNewWorkflowDataModel->SetModify(true); // if (pOSGObject&&pOSGObject->GetPaiObject()) // { // if(pOSGObject->GetPaiObject()->GetTypeID().toString().toUpper()==GetClassID_WorkflowFolder()){ // pNewWorkflowDataModel->SetName(pOSGObject->GetPaiObject()->GetNextChildName("可视解释")); // this->setWindowIcon(QIcon( ::GetImagePath() + "workflow.png" ));//修正tab页图标 // } // else{ // PaiObject *pPaiObject=pOSGObject->GetPaiObject(); // if(pPaiObject) { // if(m_SelectedCompositeMethod!="") // pNewWorkflowDataModel->SetName(pPaiObject->GetNextChildName(m_SelectedCompositeMethod)); // else // pNewWorkflowDataModel->SetName(pPaiObject->GetNextChildName(m_SelectModuleName)); // } // pNewWorkflowDataModel->SetIconName("icon/ModuleOne.png");//修正树上节点图标 // this->setWindowIcon(QIcon( ::GetImagePath() + "icon/ModuleOne.png" ));//修正tab页图标 // } // pOSGObject->AddChild(pNewWorkflowDataModel);//将工作流数据模型添加到数据树上 // } // pNewWorkflowDataModel->SetCurrentWellRoundPath(wellRoundpath); // pNewWorkflowDataModel->SetDefineMothodMode(DefineMothodMode); // m_pBObject=pNewWorkflowDataModel; // CreatWorkflowEditor(pNewWorkflowDataModel); } // void CModuleConsole::CreatWorkflowEditor(CWellLogWorkflowDataModel * pWorkflowDataModel) // { // //新建工作流编辑区 // g_mModuleParamers=new CModuleParamers(this); // //新建多井对比区 // CVecWindowDocument * pMWWindowDocument = dynamic_cast(pWorkflowDataModel->GetMWVecWindowDocument()); // if(!pMWWindowDocument) { // return; // } // CVecWindow *pMWOSGWindow = CVecWindowCommand::CreateOSGWindow(pMWWindowDocument->GetTypeID() ,false,false,pMWWindowDocument ); // if(!pMWOSGWindow) return; // pMWWindowDocument->SetIsWorkflowWindow(true); // CVecDisplayObjectCommand::ActiveOSGWindow( pMWOSGWindow ); // pMWOSGWindow->GetWindowDocument()->SetCheckState((Qt::CheckState)(-1)); // const QIcon icon=QIcon(::GetImagePath() + "icon/ModuleOne.png"); // const QString text="处理方法"; // QAction *pAction1 = new QAction(icon,text,this); // pMWOSGWindow->GetToolbar()->addAction(pAction1); // connect(pAction1,SIGNAL(triggered()),this,SLOT(slotModuleOpenOrClose())); // pWorkflowDataModel->AddChild(pMWWindowDocument); // GetObjectEvent().OnHideWellSectionWindowItem( pMWWindowDocument ); // m_pVSplitter= new QSplitter(Qt::Horizontal); // QString wname=pMWWindowDocument->GetName(); // m_pVSplitter->addWidget(pMWOSGWindow); // m_pVSplitter->addWidget(g_mModuleParamers); // this->setContentsMargins(0,0,10,0); // setCentralWidget(m_pVSplitter); // QList sizes; // sizes << this->width()<<0; // m_pVSplitter->setSizes(sizes);//默认隐藏左侧多井图窗口 // } void CModuleConsole::RunWorkFlow() { if(GetWorkflowControl())GetWorkflowControl()->SlotRunWelllogModule(); } void CModuleConsole::RunWorkFlow(float sdep,float edep) { if(GetWorkflowControl())GetWorkflowControl()->SlotRunWelllogModule(sdep,edep); } // void CModuleConsole::NewWorkflow(QObject*pObject,QString strTabText) // { // ::GetObjectEvent().OnNewWorkflow(pObject,strTabText); // } void CModuleConsole::slotSetCurrentWorkflowWindow(QObject * pObject) { return; // CModuleConsole * pWorkflowConsole = dynamic_cast(pObject); // if(!pWorkflowConsole) return; // CVecWindow * pVecWindow = NULL; // if(pWorkflowConsole->GetVSplitter()) pVecWindow=dynamic_cast(pWorkflowConsole->GetVSplitter()->widget(0)); // if(!pVecWindow) { // delete pWorkflowConsole; // return; // } // CVecDisplayObjectCommand::ActiveOSGWindow( pVecWindow ); // ::SetWorkflowConsole(pWorkflowConsole); // return; } QVector mliObject; void CModuleConsole::slotCloseAllWorkflowWindow(QObject * pObject) { // if(!pObject) return; // if(mliObject.indexOf(pObject)>-1) return; // mliObject.push_back(pObject); // CModuleConsole *pMC=dynamic_cast(pObject); // if(pMC) { // delete pMC; // SetWorkflowConsole(NULL); // return; // } // CBaseObject *pBaseObject=dynamic_cast(pObject); // if(!pBaseObject) return; // CVecWindowDocument * pWindowDocument = dynamic_cast(pBaseObject->GetVecWindowDocument()); // if(!pWindowDocument) return; // if(pWindowDocument->HasModified()) // { // int res = QMessageBox::No;//QMessageBox::information(NULL,QObject::tr("提示"),QObject::tr("是否保存图文件?"),QMessageBox::Yes|QMessageBox::No); // if(res==QMessageBox::Yes) { // // slotSaveTemplate(viewCommand,QUuid(),false); // QString templateName; // QString strTempPath= ::GetTemplatePath(); // QString OldtemplateName=pWindowDocument->GetTemplateFileName(); // if(OldtemplateName.isEmpty()|| // (!OldtemplateName.isEmpty()&&OldtemplateName.indexOf("template")>-1)) // { // CObjWell *pWell=(CObjWell *)pWindowDocument->GetCurrentWell(); // QString slf; // if(pWell) slf=pWell->GetWellFileName(); // QString wellname,path; // GetWellNameAndPath(slf,wellname,path); // OldtemplateName=path+"/"+wellname+".tpl"; // strTempPath="";//OldtemplateName; // QString strTplFilter="单井图文件(*.tpl);;多井图文件(*.mpl)"; // templateName=QFileDialog::getSaveFileName(NULL,QObject::tr("存为图文件"),OldtemplateName,strTplFilter); // if(templateName.isEmpty()) return; // } // else { // strTempPath=""; // templateName=OldtemplateName; // } // pWindowDocument->SaveAsTemplate(strTempPath+templateName); // pWindowDocument->SetTemplateFileName(strTempPath+templateName); // } // } // if(pWindowDocument->GetIsWorkflowWindow()) { // CVecWindow *pWindow=pWindowDocument->GetVecWindow(); // if(pWindow) { // QWidget *pW=dynamic_cast(pWindow->parent()); // if(pW) { // QWidget *ppw=pW->parentWidget(); // // QWidget *pppp=ppw->parentWidget(); // CModuleConsole * pWorkflowConsole=dynamic_cast(ppw); // if(!pWorkflowConsole) return; // if(pWorkflowConsole!=this) return; // delete pWorkflowConsole; // SetWorkflowConsole(NULL); // } // } // } return; } //两个地方会发起新建的操作:右键菜单[能够拿到当前井和井次],程序主菜单[拿不到当前井和井次] void _slotCreateNewWorkflow(CVecViewCommand &viewCommand,QUuid viewCommandID,bool bChecked ) { // QString currentWellRoundPath; // CBaseObject* pObject= NULL; // CObjProject *pPrj=::GetProject(); // if(!pPrj) return; // CBaseObject *pOSGObject=dynamic_cast(pPrj->GetCurrentObject()); // //新建工作流数据模型 // if (pOSGObject) // { // CObjWelllogRound* pObjWelllogRound=dynamic_cast(pOSGObject); // if(pObjWelllogRound) { // currentWellRoundPath=pObjWelllogRound->GetWellRoundPath(); // } // else { // PaiObject *pPaiObject=pOSGObject->GetPaiObject(); // while(pPaiObject) // { // CObjWelllogRound* pObjWelllogRound=dynamic_cast(pPaiObject); // if(pObjWelllogRound) { // currentWellRoundPath=pObjWelllogRound->GetWellRoundPath(); // pObject=pObjWelllogRound; // break; // } // pPaiObject=pPaiObject->GetParent(); // } // if(currentWellRoundPath.isEmpty()) { // AfxMessageBox("请先选中待处理井次!"); // return; // } // } // } // else { // AfxMessageBox("请先选中待处理井次!"); // return; // } // QString WorkflowModeid; // CModuleConsole * pWorkflowConsole = new CModuleConsole(); // ::SetWorkflowConsole(pWorkflowConsole); // pWorkflowConsole->DefineMothodMode=false; // //如果是从树上发起,则没有指定方法id // //弹出界面选择单方法或者组合方法 // pWorkflowConsole->SetWorkflowDataModelParent(pObject); // pWorkflowConsole->wellRoundpath=currentWellRoundPath; // pWorkflowConsole->CreateWorkflowDataModel(GetWindowTypeID_QtMultiWellSection()); // CModuleConsole::NewWorkflow(pWorkflowConsole,pWorkflowConsole->GetWorkflowWidget()->GetWorkflow()->GetName()); // dynamic_cast(pWorkflowConsole->GetWorkflowWidget()->GetWorkflow())->SetCurrentModuleID(pWorkflowConsole->GetSelectedModuleClassId()); // WorkflowSceneManager *pWorkflowScene=dynamic_cast(pWorkflowConsole->GetWorkflowWidget()->GetScene()); // if(!pWorkflowScene) return; // if(pWorkflowConsole->g_mModuleParamers) // { // pWorkflowConsole->GetWorkflowControl()->SetActiveTemplate(pWorkflowConsole->g_mModuleParamers->m_pTemplateTree); // pWorkflowScene->SetParameterEditor(pWorkflowConsole->g_mModuleParamers->m_pParameterEditor); // } // CVecWindow *pOSGWindow = dynamic_cast(pWorkflowConsole->GetVSplitter()->widget(0)); // if(!pOSGWindow) return; // QList wellList; // foreach(PaiObject *pPai,pPrj->m_Selects) // { // wellList.push_back(pPai->GetID()); // } // pOSGWindow->InitByWellIds(wellList); // pWorkflowConsole->GetWorkflowControl()->ApplyTemplate(pOSGWindow); return; } #define GetWindowTypeID_WindowMultiWell() "{DC4ABEB2-B0FC-4A0C-9ED7-77B6BC53B191}" //两个地方会发起新建的操作:右键菜单[能够拿到当前井和井次],程序主菜单[拿不到当前井和井次] void _slotCreateNewMultWells(CVecViewCommand &viewCommand,QUuid viewCommandID,bool bChecked ) { // QString currentWellRoundPath; // CBaseObject* pObject= NULL; // CObjProject *pPrj=::GetProject(); // if(!pPrj) return; // QString WorkflowModeid; // CModuleConsole * pWorkflowConsole = new CModuleConsole(true); // ::SetWorkflowConsole(pWorkflowConsole); // pWorkflowConsole->DefineMothodMode=false; // //如果是从树上发起,则没有指定方法id // //弹出界面选择单方法或者组合方法 // pWorkflowConsole->SetWorkflowDataModelParent(pObject); // pWorkflowConsole->wellRoundpath=currentWellRoundPath; // pWorkflowConsole->CreateWorkflowDataModel(GetWindowTypeID_WindowMultiWell()); // CModuleConsole::NewWorkflow(pWorkflowConsole,pWorkflowConsole->GetWorkflowWidget()->GetWorkflow()->GetName()); // dynamic_cast(pWorkflowConsole->GetWorkflowWidget()->GetWorkflow())->SetCurrentModuleID(pWorkflowConsole->GetSelectedModuleClassId()); // WorkflowSceneManager *pWorkflowScene=dynamic_cast(pWorkflowConsole->GetWorkflowWidget()->GetScene()); // if(!pWorkflowScene) return; // if(pWorkflowConsole->g_mModuleParamers) // { // pWorkflowConsole->GetWorkflowControl()->SetActiveTemplate(pWorkflowConsole->g_mModuleParamers->m_pTemplateTree); // pWorkflowScene->SetParameterEditor(pWorkflowConsole->g_mModuleParamers->m_pParameterEditor); // } // CVecWindow *pOSGWindow = dynamic_cast(pWorkflowConsole->GetVSplitter()->widget(0)); // if(!pOSGWindow) return; // QList wellList; // foreach(PaiObject *pPai,pPrj->m_Selects) // { // wellList.push_back(pPai->GetID()); // } // pOSGWindow->InitByWellIds(wellList); // // pWorkflowConsole->GetWorkflowControl()->ApplyTemplate(pOSGWindow); return; } void CModuleConsole::OpenWorkflow(QObject*pObject,QString strTabText) { // CWellLogWorkflowDataModel * pWorkflow = dynamic_cast(((CModuleConsole*)pObject)->GetWorkflowWidget()->GetWorkflow()); // if(pWorkflow->IsSingleModuleMode()) // ((QWidget*)pObject)->setWindowIcon(QIcon( ::GetImagePath() + "icon/ModuleOne.png" )); // else // ((QWidget*)pObject)->setWindowIcon(QIcon( ::GetImagePath() + "workflow.png" )); // if(pWorkflow->IsDefineMothodMode()) // ((QWidget*)pObject)->setWindowIcon(QIcon( ::GetImagePath() + "icon/Workflowtemplate.png" )); // ::GetObjectEvent().OnOpenWorkflowWindow(pObject,strTabText); } void CModuleConsole::SaveWorkfow(QAction * pAction) { // connect(pAction, SIGNAL(triggered()), m_control, SLOT(slotExportWorkflows())); } void CModuleConsole::RunWorkflow(QAction * pAction) { // connect(pAction, SIGNAL(triggered()), m_control, SLOT(SlotRunWelllogModule())); } void CModuleConsole::SwitchMode() { // //切换模式时,判断当前工作流编辑区是否存在工作流模块 // CWellLogWorkflowDataModel * pWorkflow = dynamic_cast(::GetWorkflowConsole()->GetWorkflowWidget()->GetWorkflow()); // WorkflowSceneManager *pWorkflowSceneManager = dynamic_cast(::GetWorkflowConsole()->GetWorkflowWidget()->GetScene()); // if (pWorkflowSceneManager->getSingleMethodFlag()) // { // ::GetWorkflowConsole()->GetWorkflowWidget()->setMinimumHeight(200); // ::GetWorkflowConsole()->GetWorkflowWidget()->setMaximumHeight(2000); // pWorkflowSceneManager->getSingleMethodFlag() = false; // } // else // { // ::GetWorkflowConsole()->GetWorkflowWidget()->setMinimumHeight(0); // ::GetWorkflowConsole()->GetWorkflowWidget()->setMaximumHeight(0); // pWorkflowSceneManager->getSingleMethodFlag() = true; // } } void _slotOpenWorkflow(CVecViewCommand &viewCommand,QUuid id ,bool bChecked ) { // if(!GetProject()||!GetProject()->m_pDataTree) return; // CDataTree *pDataTree=(CDataTree *)GetProject()->m_pDataTree; // CBaseObject * pObject = pDataTree->GetOSGObject(pDataTree->currentItem()); // if(!pObject) return; // if(!pObject->GetVecWindowDocument()) return; // CVecWindowDocument * pWindowDocument = dynamic_cast(pObject->GetVecWindowDocument()); // if(pWindowDocument->GetIsWorkflowWindow()) { // CVecWindow *pWindow=pWindowDocument->GetVecWindow(); // ; if(pWindow) { // QWidget *pW=dynamic_cast(pWindow->parent()); // if(pW) { // QWidget *ppw=pW->parentWidget(); // QWidget *pppp=ppw->parentWidget(); // CModuleConsole * pWorkflowConsole=dynamic_cast(pppp); // if(pWorkflowConsole&&pWorkflowConsole->m_pTablWiget) { // if(pWorkflowConsole->m_pTablWiget->indexOf(pWorkflowConsole)<0) { // int nIndex = pWorkflowConsole->m_pTablWiget->addTab(pWorkflowConsole, QIcon( ::GetImagePath() + pWindowDocument->GetIconName()),pWindowDocument->GetName()); // pWorkflowConsole->m_pTablWiget->setCurrentIndex( nIndex ); // } // } // } // } // } } void _SlotSaveWorkflow(CVecViewCommand &viewCommand,QUuid /*e*/,bool /*bShow*/ ) { // ::GetWorkflowConsole()->GetWorkflowControl()->slotExportWorkflows(); } void _SlotRunWorkflow(CVecViewCommand &viewCommand,QUuid /*e*/,bool /*bShow*/ ) { // CModuleConsole*pWorkflowConsole=NULL;//::GetWorkflowConsole(); // //if(!pWorkflowConsole) // { // CVecWindow *pWindow=CVecWindowCommand::GetCurrentWindow(); // QObject *p=pWindow->parent(); // QObject *pp=NULL; // if(p) pp=p->parent(); // pWorkflowConsole=dynamic_cast(pp); // SetWorkflowConsole(pWorkflowConsole); // } // if(!pWorkflowConsole) return; // pWorkflowConsole->RunWorkFlow(); } void _SlotApplyTemplate(CVecViewCommand &viewCommand,QUuid /*e*/,bool /*bShow*/ ) { // QString strTplFilter="单井图文件(*.tpl);;多井图文件(*.mpl)"; // QString strSelectedFileName=QFileDialog::getOpenFileName(NULL,QObject::tr("选择模板"),::GetTemplatePath()+"well",strTplFilter); // if(strSelectedFileName.trimmed()!="") // { // CVecWindow * pVecWindow = dynamic_cast(::GetWorkflowConsole()->GetVSplitter()->widget(0)); // CVecWindowDocument * doc = pVecWindow->GetWindowDocument(); // if(doc != NULL) // { // doc->ApplyTemplate( strSelectedFileName ); // pVecWindow->GetSceneManager()->UpdateAll(); // } // } } void _SlotSaveAsTemplate(CVecViewCommand &viewCommand,QUuid /*e*/,bool /*bShow*/) { // ::GetWorkflowConsole()->GetWorkflowControl()->slotSaveAsTemplate(); } void CModuleConsole::slotModuleOpenOrClose() // CVecViewCommand &viewCommand,QUuid viewCommandID,bool bChecked ) { SetWorkflowConsole(this); QList sizes; if(GetVSplitter()->widget(1)->width()) { sizes <setSizes(sizes);//默认隐藏左侧多井图窗口 } BEGIN_REGISTER_VIEWCOMMAND() VIEW_COMMAND_ITEM( GetViewCmdID_CreateNewSingleMethodWorkflow(),"wellsectionwindow.png", L"可视解释", false, false,"",_slotCreateNewWorkflow), VIEW_COMMAND_ITEM( GetViewCmdID_NewMultiMethodWorkflow(),"multwellsectionwindow.png", L"多井分析", false, false,"",_slotCreateNewMultWells), // VIEW_COMMAND_ITEM( GetViewCmdID_CreateParamer(),"icon/ModuleOne.png", L"处理方法", false, false,"",slotModuleOpenOrClose), VIEW_COMMAND_ITEM( GetViewCmdID_OpenWorkflow(),"workflow.png", L"打开", false, false,"",_slotOpenWorkflow), VIEW_COMMAND_ITEM( GetViewCmdID_SaveWorkflow(), "saveproject.png" , L"保存",false,false,"",_SlotSaveWorkflow ), VIEW_COMMAND_ITEM( GetViewCmdID_RunWorkflow(), "run.png" , L"处理",false,false,"",_SlotRunWorkflow ), VIEW_COMMAND_ITEM( GetViewCmdID_RunCurrentWorkflow(), "run.png" , L"处理当前段",false,false,"",_SlotRunWorkflow ), VIEW_COMMAND_ITEM( GetViewCmdID_ApplyTemplate(),"icon/MethodTemplate.png",L"打开绘图模板",false,false,"",_SlotApplyTemplate ), VIEW_COMMAND_ITEM( GetViewCmdID_SaveAsTemplate(),"icon/SaveAsTemplate.png",L"存为组合方法",false,false,"",_SlotSaveAsTemplate ) END_REGISTER_VIEWCOMMAND(); END_OSGGRAPHICS_NAMESPACE