---恢復內容開始---javascript
因爲工做須要,須要gojsjava
簡單來講node
GoJS的繪圖基於Html5的Canvas元素。一個Gojs文件基本構成包括畫布,數據模型,模型內節點等。工具
通常來講經過id方式獲取盒子,而後經過gojs的佈局
var $ = go.GraphObject.make;
var myDiagram = $(go.Diagram, "stDiagram", { ... })
gojs繪製的圖表(Diagram
)具備兩個最基本的元素,就是點和線(Node
和Link
),而且他們能夠自由組合組成一個組(Group
)。code
全部的元素都處在圖層(Layer
)上,而且能夠對它們進行佈局(Layout
)。對象
每一個Diagram
都是經過數據模型(Model
)來填充和肯定Node
的信息和Link
的所屬關係的。blog
而且咱們只須要建立好Node
和Link
的模板以及數據模型,其餘的是事情都交給gojs去處理。事件
它會經過Model.nodeDataArray
方法和GraphLinksModel.linkDataArray
方法自動加載模型並構建元素。ip
每個Node
和Link
都是經過模板來描述他們的文本、形狀、顏色等信息以及交互行爲。
每一個模板其實就是一個面板(Panel
)(你能夠將各類元素自由組合在它裏面,也能夠在它裏面添加各類交互行爲),好比說將TextBlock
、Shape
、Picture
等元素添加到這個Panel
中,鼠標進入離開的交互行爲也能夠添加到Panel
中,那麼這個Panel
就是一個模板。
每一個Node
的位置可使用Diagram.layout
或Group.layout
進行初始化設置,也能夠基於交互行爲進行拖拽。
gojs裏的工具類能夠爲Diagram
添加鼠標、鍵盤事件。
通常狀況下Diagram
都默認設置了幾種交互行爲,好比說拖拽、連線。咱們也能夠經過ToolManager
對象來管理工具類,或者說來管理交互行爲,好比說能夠中止某些交互,或開啓某些交互等。
每一個Diagram
同時也包含CommandHandler
對象,它的做用是添加一些鍵盤命令,好比點Delete
鍵刪除元素,Ctrl+C
複製、Ctrl+V
粘貼、Ctrl+Z
撤銷等。可是CommandHandler
也是被ToolManager
管理的。
Diagram
也提供經過鼠標中鍵滾動視圖、放大縮小視圖。
gojs還提供了圖表的預覽視圖(Overview
),用於瞭解大規模圖表的概況,同時還提供了組件管理面板(Palette
),用於管理建立的組件,而且支持將組件拖拽到Diagram
中。
在Diagram
中,你能夠選中Node
或者Link
,你會發現他們有少量的變化,好比在Node
周圍會增長選中框,選中Link
會變色等。這些都是由Adornment
對象控制的,你還能夠用它來增長提示框、右鍵菜單等。