Class GraphEditor

Hierarchy

  • GraphManager
    • GraphEditor

Constructors

Properties

Methods

addDataModelListeners addEvent addEventToNode addEventTrigger addNode addSymbolNode addSymbolVariable addVariable align canDeconstructSymbol canUnGroup checkId chooseImage clear clearClipboard constructSymbol copy cut deconstructSymbol deleteEvent deleteEventTrigger deleteNodes deletePropertyInEvent deleteVariable deselect destroy drawShape dropShape dropSymbol editText extractVariables fitContent fitView flip getAnimation getAnimationValue getAttributeValue getAttributes getBackgroundColor getConfig getCurrentTarget getDataModel getDrawingLayer getEvents getFnMap getFnState getGridConfig getHelpLayer getImportantPoints getIsSquare getMode getName getNode getNodeIdToDistanceXorY getNodes getNodesAttributes getOperateNode getOperateNodes getPointerPosition getRelatedConnectedLineMap getScale getSelection getSetNodesAttributesChange getShapeModule getSize getStageScalePoint getStyleConfig getVariable getVariables group initBoxSelect initCursorChange initGrid initNodeDraw initNodeEdit initNodeMove initNodeResize initNodeSelect initShapeModule insertImage inverseSelect move onFnStateChanged onKeyDown onModelChanged onNodeAnimationChange onNodeAttributeChange onNodeEventsChange onNodeVariableChange onSelectionChanged order paste redo registerContextMenu savePropertyInEvent selectAll setAnimation setAnimationValue setAttributeValue setAttributeValues setBackgroundColor setFit setGraph setGridConfig setHAlign setIsSquare setLocked setMode setName setNodesAttributes setScale setSize setStyleConfig setSubMode setTag setVAlign stopDrawing toImage toJSON toObject unGroup undo updateEvent updateEventTrigger updateRelatedConnectedLines updateSymbol updateVariable withoutSymbolNode

Constructors

  • Example

    var graphEditor=new GraphEditor({
    container:document.getElementById('editor'),
    drawing: {
    snapToGrid: {
    enable: true,
    }
    },
    selection: {
    keyboard: {
    map: {
    moveLeft: ['Shift+ArrowLeft'],
    moveRight: ['Shift+ArrowRight'],
    moveUp: ['Shift+ArrowUp'],
    moveDown: ['Shift+ArrowDown']
    }
    }
    }
    })

    Parameters

    Returns GraphEditor

Properties

backgroundColorLayer: Layer = ...
backgroundRect: any
clipboardContent: Node[] = []
config: Partial<BaseConfig> = {}
container: null | HTMLDivElement
copyNodes: any[] = []
currentMode: string = REGULAR_MODE
currentTarget: any
dataModel: undefined | DataModel
drawingLayer: Layer = ...
drawingShape: any = null
fit: string = NORMAL_FIT
gridConfig: any
gridLayer: Layer = ...
hAlign: String = LEFT_ALIGN
height: undefined | number
helpLayer: Layer = ...
isSquare: boolean = false
locked: boolean = true
makerLayer: Layer = ...
name: string = ''

The settings

nodeLayer: Layer = ...
operateNodes: any[] = []
pasteCount: number = 1
relatedConnectedLinesMap: any = ...
selectionRect: Rect
shapeModules: any[] = []
stage: undefined | Stage
transformer: any
vAlign: String = TOP_ALIGN
width: undefined | number

Methods

  • 为画布监听模型的变化,如节点的添加或删除

    Returns void

  • 为节点添加事件

    Example

    graphEditor.addEvent({
    type:'valuechange',
    action:'changeAttributes',
    attributes:{
    'fill' :'green'
    },
    triggers:[{
    type:'operation',
    operation: {
    target: 3,
    source: "state",
    operator: "="
    }
    }]
    },nodeId)
    graphEditor.addEvent({
    type:'valuechange',
    action:'executeScript',
    script: 'console.log("world")',
    triggers:[{
    script:'return state==1',
    type:'script'
    }]
    })

    Parameters

    • event: any
    • Optional nodeId: string

      操作的节点id

    Returns void

  • Parameters

    • konvaNode: any

    Returns void

  • 为事件添加条件

    Example

    graphEditor.addEventTrigger(0,{
    type: 'operation',
    target: 3,
    source: "state",
    operation: "="
    },)

    Parameters

    • eventIndex: number

      事件的索引

    • trigger: any
    • Optional nodeId: string

    Returns void

  • 添加节点

    Example

    editor.addNode({
    className:'RectNode'
    attributes:{
    x:100,
    y:200,
    opacity:0.5,
    width:200,
    height:60
    }
    })

    Parameters

    • opt: NodeConfig

      要添加节点的json数据

    Returns void

  • 实例化图元到数据模型

    Parameters

    • opt: NodeConfig

      图元的json信息

    Returns void

  • 暂时不使用此方法

    Parameters

    • symbolJson: any
    • variableName: any
    • variable: any

    Returns any

  • 添加变量

    Example

    var variable =
    {
    defaultVal:'变量默认值',//必填
    type:'integer'//可选
    };
    graphEditor.addVariable('变量1',variable)

    Parameters

    • name: string

      变量名称

    • variable: any

      变量对象

    • Optional nodeId: string
    • toModel: boolean = false

      是否为整个数据模型设置变量,为true,则变量绑定到整个模型,为false则将变量绑定到当前选中节点

    Returns void

  • 对齐操作

    Parameters

    • direction: AlignDirection

      对齐的方向

    • Optional nodeIds: any

      要对齐的节点id数组,如果为空,则默认对齐选中元素

    Returns void

  • Returns undefined | boolean

  • 当前是否可以解组

    Returns boolean

  • Returns boolean

  • Parameters

    • callback: Function

    Returns void

  • 清空画布内容

    Returns void

  • 清空剪切板

    Returns void

  • 组成图元

    Parameters

    • symbolName: string

      图元名称

    Returns any

  • 复制操作

    Parameters

    • Optional nodeIds: any

      需要复制的节点id数组,如为空,则为当前画布选中节点

    Returns void

  • 剪切

    Parameters

    • Optional nodeIds: any

      需要复制的节点id数组,如为空,则为当前画布选中节点

    Returns void

  • 编辑图元,对当前选中的图元进行编辑

    Returns void

  • 删除事件

    Parameters

    • eventIndex: number

      事件索引

    • Optional nodeId: string

      操作节点

    Returns void

  • 删除事件中的条件

    Parameters

    • eventIndex: number

      事件索引

    • triggerIndex: number

      条件索引

    • Optional nodeId: string

      操作节点id

    Returns void

  • 删除节点

    Parameters

    • Optional nodeIds: any

      需要删除的节点id数组,如果为空,则删除当前选中节点

    Returns void

  • 删除在事件中的属性

    Parameters

    • propertyIndex: number = -1

      属性索引

    • evtIndex: number

      事件索引

    • nodeId: string

      操作节点

    Returns void

  • 删除指定名称的变量

    Parameters

    • name: string

      变量名称

    • Optional nodeId: string

      需要操作的节点

    • Optional toModel: boolean = false

      是否是删除模型上的变量

    Returns void

  • Returns void

  • 销毁画布

    Returns void

  • 绘制形状

    Parameters

    • shapeName: string

      枚举值: line:直线 polyline:折线 pen:画笔 lineArrow:箭头 polylineArrow: 折线箭头

    Returns void

  • 根据鼠标的位置,将节点加入到模型

    Example

    editor.dropShape(event,{
    className:'RectNode'
    attributes:{
    opacity:0.5,
    width:200,
    height:60
    }
    })

    Parameters

    • e: DragEvent

      鼠标事件

    • node: NodeConfig

      添加的节点

    Returns void

  • 根据鼠标的位置,实例化图元加入到模型

    Parameters

    • e: DragEvent

      拖拽事件

    • node: NodeConfig

      symbol的json数据

    Returns void

  • Parameters

    • textNode: Text
    • callback: Function

    Returns void

  • 对当前选中元素提取变量

    Returns undefined | {}

  • 将画布大小设置成适合内容

    Example

    editor.fitContent(20,20,20,20)
    

    Parameters

    • Optional leftMargin: number = 10

      左留白

    • Optional rightMargin: number = 10

      右留白

    • Optional topMargin: number = 10

      上留空

    • Optional bottomMargin: number = 10

      下留空

    Returns void

  • Parameters

    • width: number
    • height: number

    Returns void

  • 镜像翻转功能

    Example

    editor.flip('x')
    

    Parameters

    • direction: string

      翻转方向,取值为x,则沿x轴翻转,取值为y,则沿着y轴翻转

    • Optional nodeIds: string[]

      需要翻转的节点id数组,没有的话,则取当前画布选中元素

    Returns void

  • 获取节点的所有动画属性

    Example

    editor.getAnimation();
    

    Parameters

    • Optional nodeId: string

      节点id,未指定的情况下,则为当前选中节点

    Returns any

    节点的所有动画属性

  • 获取节点的指定动画属性值

    Example

    editor.getAnimationValue('autoPlay');
    editor.getAnimationValue('type');

    Parameters

    • key: string

      动画属性名称

    • Optional nodeId: string

      节点id,未指定的情况下,则为当前选中节点

    Returns any

    节点的指定动画属性值

  • Example

    editor.getAttributeValue('fill')
    

    Parameters

    • attrName: string

      属性名称

    • Optional nodeId: string

      节点id,未指定的情况下,则为当前选中节点

    Returns any

    节点的指定属性

  • 获取节点的所有属性

    Example

    editor.getAttributes(id);
    

    Parameters

    • Optional id: string

    Returns any

    属性的JSON数组,含有属性中所有的信息

  • Returns any

    获取背景色

  • 获取当前配置

    Returns any

    当前配置

  • Returns any

  • 获取数据模型

    Returns undefined | DataModel

    数据模型

  • Returns Layer

  • 返回节点的所有事件

    Parameters

    • Optional nodeId: string

      节点id,未指定的情况下,则为当前选中节点

    Returns any

  • Returns Map<any, any>

    获取功能函数map

  • Returns Map<any, any>

    获取功能状态map

  • Returns any

  • Returns Layer

  • Parameters

    • target: any

    Returns any[]

  • Returns boolean

  • Returns string

  • 获取图的名称

    Returns string

  • 根据节点id获取节点

    Parameters

    • nodeId: string

      节点id

    Returns any

  • 获取节点id和需要移动距离的映射表

    Parameters

    • idToBoundRect: any

      节点和外围矩形的映射表

    • style: string

      取值'x'或'y',x表示水平方向,y表垂直方向

    Returns Map<any, any>

  • 获取画布上所有的节点

    Returns any

  • Parameters

    • Optional ids: any

      操作节点的id数组

    Returns {}

    操作节点的属性的交集

    • Parameters

      • nodeId: string

      Returns any

    • Parameters

      • nodeIds: any

      Returns any

    • 获取文档坐标

      Parameters

      • e: MouseEvent

        鼠标事件

      Returns {}

      • Parameters

        • selectNodes: any

        Returns Map<any, any>

      • 获取当前画布的显示比例

        Returns any

      • 获取当前选中节点

        Returns any

        当前选中节点

      • Parameters

        • nodes: Node[]
        • attrValues: any
        • toHistory: boolean = true

        Returns undefined | (AttributeChange | GeometryChange)[]

      • Parameters

        • shapeName: string

        Returns any

      • 获取当前画布的宽度和高度

        Returns Dimensions

        宽度和高度

      • 将当前鼠标上的点转为画布上的点

        Returns {}

        画布上的点

        • Returns any

        • 获取节点指定的变量

          Parameters

          • name: string

            变量名称

          • Optional nodeId: string

            节点的id

          Returns any

        • 获取节点所有的变量

          Parameters

          • Optional nodeId: string

          Returns any

        • 成组

          Parameters

          • Optional nodeIds: any

            需要成组的节点,如果为空,则取当前画布上被选中的节点

          Returns any

        • 监听鼠标事件,完成框选功能

          Returns void

        • 监听鼠标事件,切换鼠标图标

          Returns void

        • 根据网格的配置,初始化网格

          Returns void

        • 监听鼠标事件,完成绘制功能

          Returns void

        • 监听鼠标事件,进入编辑状态

          Returns void

        • 监听鼠标事件,节点平移后,同步模型

          Returns void

        • 监听鼠标事件,节点变换时,同步模型

          Returns void

        • 监听鼠标事件,完成选中功能

          Returns void

        • 初始化用于绘制形状的类

          Returns void

        • 插入图片

          Example

          editor.insertImage()
          

          Returns void

        • 反选

          Returns void

        • 微调功能

          Parameters

          • direction: MoveDirection

            移动的方向

          • Optional step: number = 1

            调整距离

          • Optional nodeIds: string[]

          Returns void

        • 监听功能可用状态

          Parameters

          • callback: any

          Returns void

        • 为画布添加快捷键的监听

          Parameters

          • e: any

          Returns void

        • 监听模型变换

          Parameters

          • callback: any

            模型变化的回调函数

          Returns void

        • Parameters

          • callback: any

          Returns void

        • 监听节点属性变化

          Parameters

          • callback: any

            回调函数

          Returns void

        • 监听节点的事件变化

          Parameters

          • callback: any

            回调函数

          Returns void

        • 监听节点的变量的变化

          Parameters

          • callback: any

            回调函数

          Returns void

        • 监听选中节点的变化

          Parameters

          • callback: any

          Returns void

        • 调整层序

          Parameters

          • direction: OrderDirection

            调整层序的方向,枚举值: 'up' :上移一层 'down':下移一层 'top':顶层 'bottom':底层

          • Optional nodeId: string

          Returns void

        • 粘贴操作

          Returns void

        • 重做操作

          Returns void

        • 注册右键菜单事件,完成自定义菜单功能

          Parameters

          • callbackFn: any

          Returns void

        • 添加或保存在事件中的属性

          Example

          graphEditor.savePropertyInEvent({'stroke':'green'}, -1, 0, selectNodes[0].id)
          

          Parameters

          • property: any
          • propertyIndex: number = -1

            属性的索引,默认为-1,表示新增

          • evtIndex: number

            事件索引

          • nodeId: string

            操作节点

          Returns void

        • 选中画布上所有节点

          Returns void

        • 设置动画属性

          Example

          graphEditor.setAnimation({
          'type''blink',
          'autoPlay':true,
          'period':10 //动画周期,单位秒
          },nodeId);

          Parameters

          • animation: any

            动画对象

          • Optional nodeId: string

            操作节点id

          Returns void

        • 设置动画属性值

          Example

          graphEditor.setAnimationValue('type','blink');
          

          Parameters

          • name: any

            属性名称

          • value: any

            属性值

          • nodeId: string

            操作节点id

          Returns void

        • 设置节点的属性

          Example

          graphEditor.setAttributeValue('fill','orange',ids);
          

          Parameters

          • key: string

            属性名称

          • val: any

            属性值

          • Optional nodeIds: any

            操作节点id数组,如果为空,则默认为画布选中元素

          Returns void

        • 设置节点的属性

          Example

          graphEditor.setAttributeValues({
          'fill':'red'
          },ids);

          Parameters

          • attrValues: any

            JSON对象

          • Optional nodeIds: any

          Returns void

        • 设置背景色

          Example

          editor.setBackgroundColor('red');
          

          Parameters

          • color: string

            背景色

          Returns void

        • 设置画布的适应方式

          Example

          editor.setFit('contain')
          

          Parameters

          • fit: string

            设置画布适应方式,取值可为contain,cover,normal

          Returns void

        • Parameters

          • graphContent: any

          Returns void

        • 修改默认网格配置

          Example

          graphEditor.setGridConfig({
          'color':'yellow'
          })

          Parameters

          Returns void

        • 设置画布的水平对齐方式

          Example

          editor.setHAlign('center')
          

          Parameters

          • hAlign: string

            水平对齐方式,取值可为left,right,center,默认为left

          Returns void

        • Parameters

          • square: boolean

          Returns void

        • Parameters

          • locked: boolean

          Returns void

        • 设置模式

          Parameters

          • mode: string

          Returns void

        • 设置图的名称

          Parameters

          • name: string

            名称

          Returns void

        • Parameters

          • nodes: Node[]
          • attrValues: any
          • toHistory: boolean = true

          Returns void

        • 修改视图的显示比例

          Parameters

          • scale: number

            显示比例

          Returns void

        • 设置画布的宽度和高度

          Parameters

          • width: number

            画布宽度

          • height: number

            画布高度

          Returns void

        • 修改默认样式配置

          Example

          graphEditor.setStyleConfig({
          'stroke':'yellow'
          })

          Parameters

          Returns void

        • Parameters

          • subMode: string

          Returns void

        • Parameters

          • tag: string
          • nodeId: any

          Returns void

        • 设置画布的垂直对齐方式

          Example

          editor.setHAlign('center')
          

          Parameters

          • vAlign: string

            垂直对齐方式,取值可为top,bottom,center,默认为top

          Returns void

        • 停止绘制模式

          Returns void

        • 将当前画布内容转成Image对象

          Example

          graphEditor.toImage((img: any) => {
          })

          Parameters

          • callbackFn: any

            转换完成后的回调函数

          Returns void

        • 将当前画布的信息序列化

          Parameters

          • isArray: boolean = false

          Returns string

          序列后的JSON字符串

        • 将当前图形转成JSON对象

          Is Array

          为true,则以数组的方式对JSON对象进行压缩

          Parameters

          • isArray: boolean = false

          Returns {
              backgroundColor: any;
              fit: string;
              hAlign: String;
              height: undefined | number;
              locked: boolean;
              model: {
                  format: string;
                  images: any;
                  nodes: any[];
              };
              name: string;
              vAlign: String;
              width: undefined | number;
          }

          当前图形的JSON对象

          • backgroundColor: any
          • fit: string
          • hAlign: String
          • height: undefined | number
          • locked: boolean
          • model: {
                format: string;
                images: any;
                nodes: any[];
            }
            • format: string
            • images: any
            • nodes: any[]
          • name: string
          • vAlign: String
          • width: undefined | number
        • 解组

          Parameters

          • Optional nodeIds: any

          Returns void

        • 撤销操作

          Returns void

        • 更新节点事件

          Parameters

          • event: any

            事件对象

          • evtIndex: number

            事件索引

          • Optional nodeId: string

            要操作节点

          Returns void

        • 更新事件条件

          Parameters

          • eventIndex: number

            事件索引

          • triggerIndex: number

            条件索引

          • trigger: any

            修改的条件

          • Optional nodeId: string

            操作节点id

          Returns void

        • Returns void

        • 更新图中节点的图元

          Parameters

          • symbol: any

            目标图元对象

          • ignoreVariable: boolean = false
          • nodeIds: any

            需要更新的节点,如果为空,则默认更新所有的匹配图元

          Returns void

        • 更新变量

          Example

          graphEditor.updateVariable('变量2', {
          type: 'string',
          defaultVal: 6
          }, '变量3');

          Parameters

          • name: string

            新的变量名称

          • variable: any

            变量值

          • Optional oldVariableName: string

            原来的变量名称

          • Optional nodeId: string

            需要更新变量的节点

          • toModel: boolean = false

            是否为整个数据模型设置变量,为true,则变量绑定到整个模型,为false则将变量绑定到当前选中节点

          Returns void

        • Returns boolean

        Generated using TypeDoc