流程图控件GoJS教程:内置GraphObject类各指数介绍(四)

翻译|使用教程|编辑:杨鹏连|2021-03-03 11:03:04.287|阅读 25 次

概述:​GraphObject类是所有图形对象的抽象基类。从GraphObject继承的类包括:Shape、TextBlock、Picture和Panel。本文介绍了GraphObject类各指数介绍。

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。

点击下载GoJS最新版

相关内容推荐

流程图控件GoJS教程:内置GraphObject类各指数介绍(一)

流程图控件GoJS教程:内置GraphObject类各指数介绍(二)

流程图控件GoJS教程:内置GraphObject类各指数介绍(三)

mouseHold : function(e: InputEvent, thisObj: GraphObject): void | null

获取或设置函数,当用户在按住按钮的同时将鼠标静止在该对象上一会儿时执行该函数。此属性由ToolManager使用。

如果此属性值是一个函数,则使用InputEvent调用它。默认情况下,此属性为null。

如果确实提供了可以更改图或其模型的功能,则应在事务内完成此操作-调用Diagram.startTransaction和 Diagram.commitTransaction。

您可以通过设置ToolManager.holdDelay来控制用户在不动鼠标拖动过程中必须等待多长时间才能发生“鼠标保持”事件。例如:

myDiagram =
  $(go.Diagram, "myDiagramDiv",
    { "toolManager.holdDelay": 500 });  // 500 milliseconds
或者:
myDiagram.toolManager.holdDelay = 500;  // 500 milliseconds

mouseHover : function(e: InputEvent, thisObj: GraphObject): void | null

获取或设置当用户在该对象上将鼠标静止不动一会而无需按住任何按钮时要执行的函数。此属性由ToolManager使用。

如果此属性值是一个函数,则使用InputEvent调用它。默认情况下,此属性为null。

如果确实提供了可以更改图或其模型的功能,则应在事务内完成此操作-调用Diagram.startTransaction和 Diagram.commitTransaction。

您可以通过设置ToolManager.hoverDelay来控制用户在发生“鼠标悬停”事件之前必须用静止的鼠标等待多长时间。例如:

myDiagram =
  $(go.Diagram, "myDiagramDiv",
    { "toolManager.hoverDelay": 500 });  // 500 milliseconds
或者:
myDiagram.toolManager.hoverDelay = 500;  // 500 milliseconds
mouseLeave : function(e: InputEvent, thisObj: GraphObject, nextObj: GraphObject): void | null

获取或设置当用户将鼠标移出该对象而不按住任何按钮时要执行的函数。此属性由ToolManager使用。

如果此属性值是一个函数,则使用InputEvent,鼠标离开的该GraphObject以及鼠标现在位于的下一个GraphObject进行调用。InputEvent.targetObject提供在查找之前在鼠标点找到的GraphObject绘制GraphObject.panel的可视树以到达该对象。默认情况下,此属性为null。

将该函数与Diagram.skipsUndoManager临时设置为true一起调用,这样对GraphObject的任何更改都不会记录在UndoManager中。您无需在此函数中启动和提交任何事务。调用此函数后,该图将立即更新。

例如,流程图示例 在鼠标经过节点时自动显示和隐藏端口。节点模板包括以下设置:

myDiagram.nodeTemplate =
  $(go.Node,
    . . .
    {
      . . .
      // handle mouse enter/leave events to show/hide the ports
      mouseEnter: function(e, obj) { showPorts(obj.part, true); },
      mouseLeave: function(e, obj) { showPorts(obj.part, false); }
      . . .
    });
其中showPorts定义了该函数以设置 节点的每个端口元素的可见属性。

mouseOver : function(e: InputEvent, thisObj: GraphObject): void | null

获取或设置当用户将鼠标移到该对象上而不按住任何按钮时要执行的函数。此属性由ToolManager使用。很少使用此属性-实现mouseEnter 和mouseLeave函数更为常见。

如果此属性值是一个函数,则使用InputEvent 和此GraphObject进行调用。该InputEvent.targetObject规定,在鼠标点仰视的可视化树之前发现GraphObject GraphObject.panel s到获得此对象。默认情况下,此属性为null

将该函数与Diagram.skipsUndoManager临时设置为true一起调用,这样对GraphObject的任何更改都不会记录在UndoManager中。您无需在此函数中启动和提交任何事务。调用此函数后,该图将立即更新。

name : string

获取或设置此对象的名称。默认值为空字符串。该名称在Panel中应该是唯一的,即使不是,它也会降低Panel.findObject之类的方法的用处。

一旦GraphObject在部件的可视树中,就不能修改它的名称。

在零件的可视树中标识特定的GraphObject经常需要这样做,例如,将其标识为Part.locationObjectName或 Part.selectionObjectName属性的值。

Read-only naturalBounds : Rect

此只读属性在通过比例或角度进行任何转换之前以及在由于minSize或maxSize或Stretch进行任何大小调整之前,以局部坐标形式返回此GraphObject的自然边界矩形。默认为未知(NaN,NaN)。

您不得修改Rect的任何属性(该属性的值)。

只能通过更改特定GraphObject的属性来更改该值,例如GraphObject.desiredSize,Shape.geometry或TextBlock.font。

与所有只读属性一样,使用此属性作为绑定源不太可能有用。

opacity : number

获取或设置此GraphObject和所有元素的乘法不透明度。该值必须介于0.0(完全透明)和1.0(没有其他透明度)之间。

与visible不同,“不透明度”仅影响图形,它不会导致对象调整大小或重新测量。不透明度设置不会更改对象的形状或将其排除在对象挑选之外(不会更改通过“ find ...”方法是否找到任何对象)。

此值与任何现有的透明度相乘,例如来自可视树中的Layer.opacity或GraphObject更高的不透明度,或者来自Brush或图像透明度。预设值是1。

panel : Panel | null

此只读属性返回GraphObject包含的Panel,如果此对象不在Panel中,则返回null。

尽管Part继承自此类,但Part永远不会属于Panel,因此对于每个Node或Link,此属性始终为null 。

此属性不可设置。而是,调用Panel.add以便将GraphObject放在Panel中。

part : Part | null

此只读属性返回包含此对象的Part(如果有)。该部件将是此GraphObject可视树中的根GraphObject。

为了引用绑定到它的Panel.data,通常引用GraphObject的包含部分。

此属性不可设置。如果希望此GraphObject属于Part,则需要将其添加到Part,或者将其添加到使用Panel.add添加到Part的可视树结构中。

请注意,对于诸如装饰物中的按钮之类的对象(如工具提示或上下文菜单),此属性将返回装饰物,而不是装饰的节点或链接。

如果要查找包含零件的组,请使用Part。containsGroup属性: someObj.part.containingGroup

pickable :布尔值

Gets or sets whether or not this GraphObject can be chosen by visual "find" or "hit-test" methods such as Diagram.findObjectAt.

如果该对象不可见 或无法拾取,则不会获得任何鼠标/触摸事件。

默认值为true-将注意到此对象上的鼠标事件。如果此值为false且此对象是Panel,则不仅此Panel不是“可命中的”,而且Panel内部的所有元素都将被忽略。

portId : string

获取或设置充当节点上端口的对象的标识符。默认值为null-该对象不是端口。

按照惯例,使用空字符串值表示节点的主要(通常是唯一)端口。

如果节点没有命名端口,则节点本身就是唯一的端口。

注意:可以为链接保存端口信息(即不是空字符串的portIds)的唯一一种模型是GraphLinksModel,其GraphLinksModel.linkFromPortIdProperty和 GraphLinksModel.linkToPortIdProperty已设置为链接数据对象上的名称属性。

该值在Node中应该是唯一的。一旦此GraphObject位于Node的可视树中,就不得修改此属性。

有关 使用信息和示例,请参见端口上的“简介”页面。


想要购买GoJS正版授权,或了解更多产品信息请点击【咨询在线客服】


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:Northwoods

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat