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.

66 lines
2.4 KiB
C++

#include "OperatorsGlyph.h"
#include "GUIFrame/MainWindow.h"
#include "GUIFrame/MainTreeWidget.h"
#include "GUIWidget/TreeWidget.h"
#include "GUIDialog/GlyphDialog.h"
#include "OperatorsInterface/GraphEventOperator.h"
#include "OperatorsInterface/ParaWidgetInterfaceOperator.h"
#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPost3DManager.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostIsosurface.h"
namespace OperModel
{
OperatorsGlyph::OperatorsGlyph()
{
}
bool OperatorsGlyph::execGUI()
{
GUI::MainWindow* mainWin = dynamic_cast<GUI::MainWindow*>(FITKAPP->getGlobalData()->getMainWindow());
if (mainWin == nullptr)return false;
GUI::TreeWidget* treeWidget = mainWin->getTreeWidget()->getTreeWidget();
if (treeWidget == nullptr)return false;
//获取树节点当前数据对象id
if (_senderName == "actionGlyphCreate") {
GUI::GlyphDialog* dialog = new GUI::GlyphDialog(treeWidget->getCurrentDataID(), this, true);
dialog->show();
}
else if (_senderName == "actionGlyphEdit") {
int objID = -1;
argValue(objID_String, objID);
if (objID <= 0)return false;
GUI::GlyphDialog* dialog = new GUI::GlyphDialog(objID, this, false);
dialog->show();
}
return false;
}
bool OperatorsGlyph::execProfession()
{
Interface::FITKCFDPost3DManager* manager = FITKAPP->getGlobalData()->getPostData<Interface::FITKCFDPostData>()->getPostDataManager();
if (manager == nullptr)return false;
EventOper::GraphEventOperator* graphOper = FITKOPERREPO->getOperatorT<EventOper::GraphEventOperator>("OperGraphPreprocess");
if (graphOper == nullptr)return false;
EventOper::ParaWidgetInterfaceOperator* treeOper = FITKOPERREPO->getOperatorT<EventOper::ParaWidgetInterfaceOperator>("ModelTreeEvent");
if (treeOper == nullptr)return false;
int objID = -1;
argValue(objID_String, objID);
Interface::FITKAbstractCFDPostData* data = manager->getDataByID(objID);
if (data) {
graphOper->updateSingle(objID);
}
treeOper->updateTree();
return false;
}
}