gojs DiagramEvent 图表事件中文文档

11 篇文章 2 订阅
2 篇文章 0 订阅

图表事件

Hierarchy

  • 图表事件

图表事件是比 输入事件更抽象的事件. 它们是在 图表 类上触发的. 可以通过调用Diagram.addDiagramListener. 在图表上注册一个图表侦听器来接收此类事件.调用侦听器函数时,将传递一个图表事件实例. 使用name 属性确定它是哪种图表事件. 图表 属性引用图表, 您可以从中获得附加信息,例如Diagram.lastInput,反过来有提供了 例如 InputEvent.documentPoint 之类的信息,这些信息可能与此类图表事件相关.

subject 和 parameter 可选地提供有关关系图表事件的附加信息. subject 是Part 零部件的集合, 也可以是单个对象, 如节点中的Link 链接 或者 GraphObject 图形对象 . 这取决于它是哪种图表事件.

有些图表事件,如 "ObjectSingleClicked" 或"BackgroundDoubleClicked" 通常与 输入事件关联. 有些图表事件,如"SelectionMoved" 或 "PartRotated" 与Tool-handled gestures 或者CommandHandler 操作的结果相关联. 有些图表事件根本不必与任何输入事件相关联,例如 "ViewportBoundsChanged",这可能由于程序的直接更改 Diagram.position 和 Diagram.scale 属性而触发事件.

在整个关系图的状态稳定下来之前,可以调用事务期间发生的图表事件. 这通常意味着此类事件发生在布局之前,因此节点可能没有它们的最终位置, 链接可能没有最终的路由, Diagram.documentBounds 和 Diagram.viewportBounds 可能还没有更新. 这些事件可能对图表进行额外的更改,从而可能导致额外的副作用.

发生在事务外部的事件,如果有修改需要您手动启动和提交事务. 但是,有些图表事件不允许您对图表或模型进行任何更改.

事件使用例子

//返回类型为DiagramEvent.subject 对象集合的例如SelectionDeleting
//监听节点删除前事件
myDiagram.addDiagramListener("SelectionDeleting", function(e) {
    e.subject.each(function(n) {
        //n为删除节点或线的对象,n.data 为json数据
        console.log(n.data);
        if(n instanceof go.Node) {
            //判断是不是节点
        }
    });
});


当前定义的图表事件名称包括:

构造函数

constructor

  • DiagramEvent类构造函数生成一个空的DiagramEvent.你不需要调用这个构造函数.但是如果您这样做了,您必须首先将diagram设置为Diagram,然后才能进行其他使用.

    Returns DiagramEvent

属性

diagram : Diagram

  • 获取与事件关联的图表.

name : string

  • 获取或设置图表事件类型的名称.此属性应始终设置为可识别的名称列表之一,如图表事件文档中所列.

parameter : any

  • 获取或设置描述对图表事件subject更改的可选对象.此属性默认为null.

subject : any

  • 获取或设置作为图表事件subject的可选对象.此属性默认为null.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值