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

翻译|使用教程|编辑:杨鹏连|2021-01-20 11:48:45.293|阅读 65 次

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

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

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

点击下载GoJS最新版

背景点击 :功能(é :InputEvent的,thisObj :GraphObject ):void| null

获取或设置当用户单击该对象时执行的函数。通常,这需要进行鼠标下移,然后使用鼠标右键(辅助)在大约相同的位置上进行快速鼠标上移。 当用户单击GraphObject时,ClickSelectingTool使用此属性。除了 使用name引发的DiagramEvent之外,还调用了该涵数。"ObjectContextClicked"

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

从第二个参数obj,您可以通过part属性到达Node或Link 。从那里,您可以通过Panel.data属性访问绑定数据。因此,您可以从事件处理程序中通过获取绑定数据obj.part.data。

默认情况下,此属性为null。

Layer.isTemporary的Layer中的对象不接收点击事件。如果您确实希望此类对象响应点击,请将isActionable设置为true。

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

上下文菜单 :Adornment | HTMLInfo | null

在此对象上单击上下文时,将显示此装饰或HTMLInfo。默认值为null,表示不显示上下文菜单。

更改此值不会修改或删除为此对象显示的任何现有菜单。

上下文菜单还可能取决于与装饰的部件具有相同的数据绑定(即,Panel.data的值相同)。

上下文菜单不是通过copy复制的,因此上下文菜单可以由模板的所有实例共享。

典型的上下文菜单被实现为带有多个按钮的装饰。例如,此上下文菜单在“动态端口”示例中定义 :

var nodeMenu =  // context menu for each Node
 $("ContextMenu",
    $("ContextMenuButton",
      $(go.TextBlock, "Add top port"),
      { click: function(e, obj) { addPort("top"); } }),
    $("ContextMenuButton",
      $(go.TextBlock, "Add left port"),
      { click: function(e, obj) { addPort("left"); } }),
    $("ContextMenuButton",
      $(go.TextBlock, "Add right port"),
      { click: function(e, obj) { addPort("right"); } }),
    $("ContextMenuButton",
      $(go.TextBlock, "Add bottom port"),
      { click: function(e, obj) { addPort("bottom"); } }));
并在节点模板中使用:
myDiagram.nodeTemplate =
  $(go.Node, "Table",
    { . . .
      contextMenu: nodeMenu
    },
    . . .);
上下文菜单通常由ContextMenuTool.positionContextMenu定位。但是,如果上下文菜单中有一个占位符,则将放置上下文菜单(即装饰),以使占位符与此装饰的GraphObject处于同一位置。

该基本样本还说明如何使上下文菜单项时不可见的命令无效。

替换此值将不会修改或删除为此对象显示的任何现有上下文菜单。

在“上下文菜单”中了解有关上下文菜单的更多信息。

游标 :字符串

获取或设置当鼠标悬停在此对象上且没有按下鼠标按钮时使用的鼠标光标。如果没有为此对象指定特定的游标,则该值为null;实际的光标由任何包含Panel的光标确定。

默认值为空字符串,这表示当前鼠标光标由图表确定。其他字符串应该是指定游标的有效CSS字符串。这提供了有关游标语法的更多信息: CSS cursors(mozilla.org)。

所需尺寸 

获取或设置此GraphObject的所需大小(以本地坐标表示)。值必须为Size类型。默认值为Size(NaN,NaN)。您不能修改此属性值的宽度或高度-如果要更改期望的Size,必须将此属性设置为其他Size。

获取或设置宽度或高度等效于获取或设置此属性的宽度或高度。

该大小不包括由于比例或角度引起的任何变换,也不包括由于Shape.strokeWidth而引起的任何笔粗(如果这是Shape)。如果有一个包含面板的面板,面板将确定实际尺寸。如果期望的大小大于GraphObject的面板确定的允许大小,则GraphObject可能会在视觉上被剪切。如果期望的大小不符合minSize和maxSize的约束,则将调整GraphObject的大小来满足它们。

只读图 :Diagram | null

此只读属性返回此GraphObject所在的Diagram(如果存在)。

此属性不可设置。尽管您不能将任何普通的GraphObject添加到图中,但可以调用Diagram.add 将部件添加到图中。

双点击 :功能(é :InputEvent的,thisObj :GraphObject ):void| null

获取或设置当用户双击该对象时执行的函数。通常,这涉及使用鼠标左键(主键)在大致相同的位置快速连续地向下/向下/上/下/上鼠标。 当用户单击GraphObject时,ClickSelectingTool使用此属性。除了 使用name引发的DiagramEvent之外,还调用了该函数。"ObjectDoubleClicked"

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

从第二个参数obj,您可以通过part属性到达Node或Link 。从那里,您可以通过Panel.data属性访问绑定数据。因此,您可以从事件处理程序中通过获取绑定数据obj.part.data。

默认情况下,此属性为null。

Layer.isTemporary的Layer中的对象不接收点击事件。如果您确实希望此类对象响应点击,请将isActionable设置为true。

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

该层次结构类样本 表明,开辟了该类的文档网页双击事件处理程序的定义:

diagram.nodeTemplate =
  $(go.Node, . . .,
    {
      doubleClick:  // here the second argument is this object, which is this Node
        function(e, node) { window.open("../api/symbols/" + node.data.key + ".html"); }
    },
    . . .
    );

启用改变 function(thisObj: GraphObject, enabled: boolean): void | null

获取或设置函数,该函数在某些包含Panel的值更改Panel.isEnabled时执行。它通常用于修改对象的外观。此函数不得更改任何面板Panel.isEnabled的值。

如果此属性值是一个函数,则使用两个参数(此GraphObject和新值)调用它。默认情况下,此属性为null-不调用任何函数。

fromEndSegmentLength:number

获取或设置来自此端口的链接的第一段的长度。当计算的“ from spot”不是Spot.None时,将使用此值。默认值为10。该值还限制了可绘制Link.fromShortLength的时间。

在确定链接的路由时,Link.fromEndSegmentLength的值(如果不是NaN)优先于此端口上的值。

有关如何使用此属性的示例,请参见“链接末段长度”。

除非整个Node都充当单个端口,否则必须在portId不为null的GraphObject上设置此属性,在这种情况下,应在Node上设置此属性。

fromLinkable : boolean | null

获取或设置用户是否可以从此端口绘制链接。LinkingBaseTool.isValidFrom使用此属性。

默认值为null,表示实际值是从父级Panel继承而来的;如果不包含父面板,则为false。

您必须在端口ID不为null的GraphObject上设置此属性,除非整个Node都充当单个端口,在这种情况下,应在Node上设置此属性,或者除非您禁用特定对象的“可链接性” Panel中的GraphObject,其fromLinkable已设置或绑定为true。

来自可链接重复项 :布尔值

获取或设置用户是否可以从该端口绘制重复的链接。LinkingBaseTool.isValidLink使用此属性。默认值为false。

除非整个Node都充当单个端口,否则必须在portId不为null的GraphObject上设置此属性,在这种情况下,应在Node上设置此属性。

来自可链接的自我节点 :布尔值

获取或设置用户是否可以绘制从该端口的Node连接的链接。LinkingBaseTool.isValidLink使用此属性。默认值为false。

除非整个Node都充当单个端口,否则必须在portId不为null的GraphObject上设置此属性,在这种情况下,应在Node上设置此属性。


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


标签:

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

文章转载自:Northwoods

为你推荐

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