---恢复内容开始---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
对象控制的,你还能够用它来增长提示框、右键菜单等。