翻譯|使用教程|編輯:楊鵬連|2021-01-20 11:48:45.293|閱讀 371 次
概述:?GraphObject類是所有圖形對象的抽象基類。從GraphObject繼承的類包括:Shape、TextBlock、Picture和Panel。本文介紹了GraphObject類各指數(shù)介紹。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創(chuàng)建流程圖,且極大地簡化您的JavaScript / Canvas 程序。
背景點擊 :功能(é :InputEvent的,thisObj :GraphObject ):void| null
獲取或設(shè)置當(dāng)用戶單擊該對象時執(zhí)行的函數(shù)。通常,這需要進(jìn)行鼠標(biāo)下移,然后使用鼠標(biāo)右鍵(輔助)在大約相同的位置上進(jìn)行快速鼠標(biāo)上移。 當(dāng)用戶單擊GraphObject時,ClickSelectingTool使用此屬性。除了 使用name引發(fā)的DiagramEvent之外,還調(diào)用了該涵數(shù)。"ObjectContextClicked"
如果此屬性值是一個函數(shù),則使用InputEvent 和此GraphObject進(jìn)行調(diào)用。該InputEvent.targetObject規(guī)定,在鼠標(biāo)點仰視的可視化樹之前發(fā)現(xiàn)GraphObject GraphObject.panel s到獲得此對象。
從第二個參數(shù)obj,您可以通過part屬性到達(dá)Node或Link 。從那里,您可以通過Panel.data屬性訪問綁定數(shù)據(jù)。因此,您可以從事件處理程序中通過獲取綁定數(shù)據(jù)obj.part.data。
默認(rèn)情況下,此屬性為null。
Layer.isTemporary的Layer中的對象不接收點擊事件。如果您確實希望此類對象響應(yīng)點擊,請將isActionable設(shè)置為true。
如果確實提供了可以更改圖或其模型的功能,則應(yīng)在事務(wù)內(nèi)完成此操作-調(diào)用Diagram.startTransaction和 Diagram.commitTransaction。
上下文菜單 :Adornment | HTMLInfo | null
在此對象上單擊上下文時,將顯示此裝飾或HTMLInfo。默認(rèn)值為null,表示不顯示上下文菜單。
更改此值不會修改或刪除為此對象顯示的任何現(xiàn)有菜單。
上下文菜單還可能取決于與裝飾的部件具有相同的數(shù)據(jù)綁定(即,Panel.data的值相同)。
上下文菜單不是通過copy復(fù)制的,因此上下文菜單可以由模板的所有實例共享。
典型的上下文菜單被實現(xiàn)為帶有多個按鈕的裝飾。例如,此上下文菜單在“動態(tài)端口”示例中定義 :
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"); } }));并在節(jié)點模板中使用:
myDiagram.nodeTemplate = $(go.Node, "Table", { . . . contextMenu: nodeMenu }, . . .);上下文菜單通常由ContextMenuTool.positionContextMenu定位。但是,如果上下文菜單中有一個占位符,則將放置上下文菜單(即裝飾),以使占位符與此裝飾的GraphObject處于同一位置。
該基本樣本還說明如何使上下文菜單項時不可見的命令無效。
替換此值將不會修改或刪除為此對象顯示的任何現(xiàn)有上下文菜單。
在“上下文菜單”中了解有關(guān)上下文菜單的更多信息。
游標(biāo) :字符串
獲取或設(shè)置當(dāng)鼠標(biāo)懸停在此對象上且沒有按下鼠標(biāo)按鈕時使用的鼠標(biāo)光標(biāo)。如果沒有為此對象指定特定的游標(biāo),則該值為null;實際的光標(biāo)由任何包含Panel的光標(biāo)確定。
默認(rèn)值為空字符串,這表示當(dāng)前鼠標(biāo)光標(biāo)由圖表確定。其他字符串應(yīng)該是指定游標(biāo)的有效CSS字符串。這提供了有關(guān)游標(biāo)語法的更多信息: CSS cursors(mozilla.org)。
所需尺寸
獲取或設(shè)置此GraphObject的所需大小(以本地坐標(biāo)表示)。值必須為Size類型。默認(rèn)值為Size(NaN,NaN)。您不能修改此屬性值的寬度或高度-如果要更改期望的Size,必須將此屬性設(shè)置為其他Size。
獲取或設(shè)置寬度或高度等效于獲取或設(shè)置此屬性的寬度或高度。
該大小不包括由于比例或角度引起的任何變換,也不包括由于Shape.strokeWidth而引起的任何筆粗(如果這是Shape)。如果有一個包含面板的面板,面板將確定實際尺寸。如果期望的大小大于GraphObject的面板確定的允許大小,則GraphObject可能會在視覺上被剪切。如果期望的大小不符合minSize和maxSize的約束,則將調(diào)整GraphObject的大小來滿足它們。
只讀圖 :Diagram | null
此只讀屬性返回此GraphObject所在的Diagram(如果存在)。
此屬性不可設(shè)置。盡管您不能將任何普通的GraphObject添加到圖中,但可以調(diào)用Diagram.add 將部件添加到圖中。
雙點擊 :功能(é :InputEvent的,thisObj :GraphObject ):void| null
獲取或設(shè)置當(dāng)用戶雙擊該對象時執(zhí)行的函數(shù)。通常,這涉及使用鼠標(biāo)左鍵(主鍵)在大致相同的位置快速連續(xù)地向下/向下/上/下/上鼠標(biāo)。 當(dāng)用戶單擊GraphObject時,ClickSelectingTool使用此屬性。除了 使用name引發(fā)的DiagramEvent之外,還調(diào)用了該函數(shù)。"ObjectDoubleClicked"
如果此屬性值是一個函數(shù),則使用InputEvent 和此GraphObject進(jìn)行調(diào)用。該InputEvent.targetObject規(guī)定,在鼠標(biāo)點仰視的可視化樹之前發(fā)現(xiàn)GraphObject GraphObject.panel s到獲得此對象。
從第二個參數(shù)obj,您可以通過part屬性到達(dá)Node或Link 。從那里,您可以通過Panel.data屬性訪問綁定數(shù)據(jù)。因此,您可以從事件處理程序中通過獲取綁定數(shù)據(jù)obj.part.data。
默認(rèn)情況下,此屬性為null。
Layer.isTemporary的Layer中的對象不接收點擊事件。如果您確實希望此類對象響應(yīng)點擊,請將isActionable設(shè)置為true。
如果確實提供了可以更改圖或其模型的功能,則應(yīng)在事務(wù)內(nèi)完成此操作-調(diào)用Diagram.startTransaction和 Diagram.commitTransaction。
該層次結(jié)構(gòu)類樣本 表明,開辟了該類的文檔網(wǎng)頁雙擊事件處理程序的定義:
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
獲取或設(shè)置函數(shù),該函數(shù)在某些包含Panel的值更改Panel.isEnabled時執(zhí)行。它通常用于修改對象的外觀。此函數(shù)不得更改任何面板Panel.isEnabled的值。
如果此屬性值是一個函數(shù),則使用兩個參數(shù)(此GraphObject和新值)調(diào)用它。默認(rèn)情況下,此屬性為null-不調(diào)用任何函數(shù)。
fromEndSegmentLength:number
獲取或設(shè)置來自此端口的鏈接的第一段的長度。當(dāng)計算的“ from spot”不是Spot.None時,將使用此值。默認(rèn)值為10。該值還限制了可繪制Link.fromShortLength的時間。
在確定鏈接的路由時,Link.fromEndSegmentLength的值(如果不是NaN)優(yōu)先于此端口上的值。
有關(guān)如何使用此屬性的示例,請參見“鏈接末段長度”。
除非整個Node都充當(dāng)單個端口,否則必須在portId不為null的GraphObject上設(shè)置此屬性,在這種情況下,應(yīng)在Node上設(shè)置此屬性。
fromLinkable : boolean | null
獲取或設(shè)置用戶是否可以從此端口繪制鏈接。LinkingBaseTool.isValidFrom使用此屬性。
默認(rèn)值為null,表示實際值是從父級Panel繼承而來的;如果不包含父面板,則為false。
您必須在端口ID不為null的GraphObject上設(shè)置此屬性,除非整個Node都充當(dāng)單個端口,在這種情況下,應(yīng)在Node上設(shè)置此屬性,或者除非您禁用特定對象的“可鏈接性” Panel中的GraphObject,其fromLinkable已設(shè)置或綁定為true。
來自可鏈接重復(fù)項 :布爾值
獲取或設(shè)置用戶是否可以從該端口繪制重復(fù)的鏈接。LinkingBaseTool.isValidLink使用此屬性。默認(rèn)值為false。
除非整個Node都充當(dāng)單個端口,否則必須在portId不為null的GraphObject上設(shè)置此屬性,在這種情況下,應(yīng)在Node上設(shè)置此屬性。
來自可鏈接的自我節(jié)點 :布爾值
獲取或設(shè)置用戶是否可以繪制從該端口的Node連接的鏈接。LinkingBaseTool.isValidLink使用此屬性。默認(rèn)值為false。
除非整個Node都充當(dāng)單個端口,否則必須在portId不為null的GraphObject上設(shè)置此屬性,在這種情況下,應(yīng)在Node上設(shè)置此屬性。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: