DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAAbstractNodeFactory类 参考abstract

FCAbstractNode的工厂基类,所有自定义的node集合最后都需要提供一个工厂 更多...

#include <DAAbstractNodeFactory.h>

类 DA::DAAbstractNodeFactory 继承关系图:

class  PrivateData
 The DAAbstractNodeFactory::PrivateData class
 

Public 类型

using SharedPointer = std::shared_ptr< DAAbstractNodeFactory >
 
using WeakPointer = std::weak_ptr< DAAbstractNodeFactory >
 

Public 成员函数

 DAAbstractNodeFactory ()
 DAAbstractNodeFactory
 
virtual void registWorkflow (DAWorkFlow *wf)
 工厂设置了workflow,此函数设置为虚函数,在某些工厂可以通过此函数的重载来绑定DAWorkFlow的信号
 
DAWorkFlowgetWorkFlow () const
 获取工作流
 
SharedPointer pointer ()
 返回自身的指针
 
virtual QString factoryPrototypes () const =0
 工厂的唯一标识
 
virtual QString factoryName () const =0
 工厂名称
 
virtual QString factoryDescribe () const =0
 工厂具体描述
 
virtual DAAbstractNode::SharedPointer create (const DANodeMetaData &meta)=0
 工厂函数,创建一个DAAbstractNode,工厂不持有FCAbstractNode的管理权
 
virtual void initializNode (const DAAbstractNode::SharedPointer &node)
 初始化节点
 
virtual QStringList getPrototypes () const =0
 获取所有注册的Prototypes
 
virtual QList< DANodeMetaDatagetNodesMetaData () const =0
 获取所有类型的元数据
 
virtual void nodeAddedToWorkflow (DAAbstractNode::SharedPointer node)
 节点加入workflow的回调 在调用DAWorkFlow::addNode会触发node对应工厂的此函数的回调
 
virtual void nodeStartRemove (DAAbstractNode::SharedPointer node)
 节点删除的工厂回调
 
virtual void nodeLinkDetached (DAAbstractNode::SharedPointer outNode, const QString &outKey, DAAbstractNode::SharedPointer inNode, const QString &inkey)
 节点连线删除的回调
 
virtual void saveExternInfoToXml (QDomDocument *doc, QDomElement *factoryExternElement) const
 把扩展信息保存到xml上
 
virtual void loadExternInfoFromXml (const QDomElement *factoryExternElement)
 加载扩展信息到工厂中
 
virtual void uiInitialization (DANodeGraphicsScene *scene)
 界面初始化,这个回调发生在工作流和工厂被加入到场景中触发
 
virtual void workflowReady ()
 工作流准备完成回调 文件加载过程中不会触发nodeAdded信号,在整个文件加载完成后会触发workflowReady用来通知其他告知工作流加载完成
 

详细描述

FCAbstractNode的工厂基类,所有自定义的node集合最后都需要提供一个工厂

工厂将通过

参见
DANodeMetaData 来创建一个DAAbstractNode,DAAbstractNode可以生成DAAbstractNodeGraphicsItem实现前端的渲染, 因此,任何节点都需要实现一个DAAbstractNode和一个DAAbstractNodeGraphicsItem,一个实现逻辑节点的描述, 一个实现前端的渲染,另外DAAbstractNodeGraphicsItem可以生成DAAbstractNodeWidget,用于设置DAAbstractNodeGraphicsItem

成员函数说明

◆ create()

virtual DAAbstractNode::SharedPointer DA::DAAbstractNodeFactory::create ( const DANodeMetaData meta)
pure virtual

工厂函数,创建一个DAAbstractNode,工厂不持有FCAbstractNode的管理权

参数
meta元对象
返回
注解
此函数会在
参见
DAWorkFlow::createNode 中调用,用户不要直接调用此函数, 因为
DAWorkFlow::createNode 中会有其他的操作

◆ factoryDescribe()

virtual QString DA::DAAbstractNodeFactory::factoryDescribe ( ) const
pure virtual

工厂具体描述

注解
工厂具体描述可进行翻译
返回

◆ factoryName()

virtual QString DA::DAAbstractNodeFactory::factoryName ( ) const
pure virtual

工厂名称

注解
工厂名称可进行翻译
返回

◆ factoryPrototypes()

virtual QString DA::DAAbstractNodeFactory::factoryPrototypes ( ) const
pure virtual

工厂的唯一标识

注解
每个工厂需要保证有唯一的标识,工作流将通过标识查找工厂
此类型名字不能进行翻译
返回

◆ getNodesMetaData()

virtual QList< DANodeMetaData > DA::DAAbstractNodeFactory::getNodesMetaData ( ) const
pure virtual

获取所有类型的元数据

返回

◆ getPrototypes()

virtual QStringList DA::DAAbstractNodeFactory::getPrototypes ( ) const
pure virtual

获取所有注册的Prototypes

返回

◆ getWorkFlow()

DAWorkFlow * DA::DAAbstractNodeFactory::getWorkFlow ( ) const

获取工作流

返回

◆ initializNode()

void DA::DAAbstractNodeFactory::initializNode ( const DAAbstractNode::SharedPointer &  node)
virtual

初始化节点

注解
此函数需要用户在create之后调用
DAAbstractNode::SharedPointer MyFactory::create(const DANodeMetaData& meta){
...
DAAbstractNode::SharedPointer node = new xxxNode();
...
}
void MyFactory::initializNode(const DAAbstractNode::SharedPointer& node){
...
do you initializ
}
virtual void initializNode(const DAAbstractNode::SharedPointer &node)
初始化节点
Definition DAAbstractNodeFactory.cpp:57
保存节点元数据 节点元数据由工厂进行管理
Definition DANodeMetaData.h:16
参数
node

◆ loadExternInfoFromXml()

void DA::DAAbstractNodeFactory::loadExternInfoFromXml ( const QDomElement *  factoryExternElement)
virtual

加载扩展信息到工厂中

  • 此函数会在工作流加载过程中调用,把工厂的特殊信息加载
  • 注解
    工作流加载过程如下:

加载工作流扩展信息

  1. 加载节点信息
  2. 加载链接信息
  3. 加载特殊item(非工作流的item)
  4. 加载工厂扩展信息
  5. 加载scene信息
    • 参数
      factoryExternElement

◆ nodeLinkDetached()

void DA::DAAbstractNodeFactory::nodeLinkDetached ( DAAbstractNode::SharedPointer  outNode,
const QString &  outKey,
DAAbstractNode::SharedPointer  inNode,
const QString &  inkey 
)
virtual

节点连线删除的回调

参数
outNode输出节点
outKey输出key
intNode输入节点
inkey输入key

◆ nodeStartRemove()

void DA::DAAbstractNodeFactory::nodeStartRemove ( DAAbstractNode::SharedPointer  node)
virtual

节点删除的工厂回调

参数
node
注解
此函数会在
参见
DAWorkFlow::removeNode 调用时调用

◆ pointer()

DAAbstractNodeFactory::SharedPointer DA::DAAbstractNodeFactory::pointer ( )

返回自身的指针

返回

◆ registWorkflow()

void DA::DAAbstractNodeFactory::registWorkflow ( DAWorkFlow wf)
virtual

工厂设置了workflow,此函数设置为虚函数,在某些工厂可以通过此函数的重载来绑定DAWorkFlow的信号

注解
重载此函数一定要调用DAAbstractNodeFactory::registWorkflow,否则
参见
getWorkFlow 一直返回空

◆ saveExternInfoToXml()

void DA::DAAbstractNodeFactory::saveExternInfoToXml ( QDomDocument *  doc,
QDomElement *  factoryExternElement 
) const
virtual

把扩展信息保存到xml上

  • 此函数在工作流保存的过程中会调用,把工厂的附加信息保存到xml文件上
  • 注解
    工作流保存过程如下:

保存工作流扩展信息

  1. 保存节点信息
  2. 保存链接信息
  3. 保存特殊item(非工作流的item)
  4. 保存工厂扩展信息
  5. 保存scene信息
    参数
    doc
    factoryExternElement

◆ uiInitialization()

void DA::DAAbstractNodeFactory::uiInitialization ( DANodeGraphicsScene scene)
virtual

界面初始化,这个回调发生在工作流和工厂被加入到场景中触发

参数
scene
注解
此函数的回调发生DANodeGraphicsScene::setWorkFlow

该类的文档由以下文件生成: