持续更新中

基础画布定义API
画布初始位置 initialContentAlignment: go.Spot.Center,
画布位置,定义后就不能拖动画布了,画布位置交由gojs管理 contentAlignment:go.Spot.Center,
初始坐标 initialPosition: new go.Point(0, 0)
禁止移动节点 allowMove:false
禁止复制 allowCopy: false
禁止删除 allowDelete:false
禁止选中 allowSelect:false
禁止缩放  allowZoom: false
禁止撤销和重做  "undoManager.isEnabled": false
禁止水平拖动画布
禁止水平滚动条 allowHorizontalScroll: false
禁止垂直拖动画布

禁止垂直滚动条

allowVerticalScroll: false
只读 isReadOnly: true
画布初始化动画时间 "animationManager.duration": 600
禁止画布初始化动画 "animationManager.isEnabled": false
画布比例 scale:1.5
画布比例自适应

autoScale

autoScale:go.Diagram.Uniform,//自适应

autoScale:go.Diagram.UniformToFill,//自适应

autoScale:go.Diagram.None,//默认值不自适应

画布最小比例 minScale:1.2,
画布最大比例 maxScale:2.0,
显示网格 "grid.visible":true,
画布边距padding
padding:80或者new go.Margin(2, 0)或new go.Margin(1, 0, 0, 1)

画布节点连线定义

validCycle:go.Diagram.CycleDestinationTree 只允许有一个父节点

validCycle:go.Diagram.CycleNotUndirected

validCycle:go.Diagram.CycleNotDirected

validCycle:go.Diagram.CycleSourceTree

禁止鼠标拖动区域选中dragSelectingTool
"dragSelectingTool.isEnabled" : false,

或者在画布对象myDiagram创建后再调用

myDiagram.toolManager.dragSelectingTool.isEnabled = false ;

画布节点连线定义validCycle,可能理解有误,有问题麻烦误留言矫正,慢慢测中,先留个位置
默认无限制 validCycle:go.Diagram.CycleAll  节点之间连线随便连
一个节点只允许有一个父节点,并且没有定向循环(仅允许维护树结构的链接)

validCycle:go.Diagram.CycleDestinationTree
禁止A→C,B→C

节点的有效链接不会在图中产生有向循环
validCycle:go.Diagram.CycleNotDirected

禁止A-B-C-A
节点的有效链接不会在图中产生无向循环
validCycle:go.Diagram.CycleNotUndirected

???测不出来
一个节点只允许有一个子节点并且没有定向循环。 validCycle:go.Diagram.CycleSourceTree 禁止A→B,A→C

画布监听事件API
 
节点生成事件 externalobjectsdropped
线生成事件 LinkDrawn
线重新连接事件 LinkRelinked
删除后事件 SelectionDeleted
删除前事件 SelectionDeleting 例子入口
节点移动事件 SelectionMoved
//监听节点或线的删除事件
myDiagram.addDiagramListener("SelectionDeleted", function(e) {
e.subject.each(function(n){
console.log(n.data.key);
});
})
自动布局API
PS:这里只写比较常用布局,其他布局请查询官网API
网格布局 go.GridLayout
力导向布局 go.ForceDirectedLayout
树形布局 go.TreeLayout
径向布局(需要引RadialLayout.js) RadialLayout
//用例定义画布节点为网格布局
myDiagram =
$(go.Diagram, "myDiagramDiv", // 画布定义
{layout:$(go.GridLayout, //自动布局定义,设置为网格布局
{ comparer: go.GridLayout.smartComparer,//设置从小到大排序
spacing: go.Size.parse("20 20"),//设置节点间隔
comparer: function(a, b){
//重写布局算法,根据其他属性值重新增设置顺序
var ay = a.data.type;
var by = b.data.type;
if(!!ay&&!!by){
if(ay > by) return -1;
if(ay < by) return 1;
}else if(!!ay){
return -1;
}else if(!!by){
return 1;
}
}
});
});


---------------------
作者:麋鹿的二狼
来源:CSDN
原文:https://blog.csdn.net/qq_29287561/article/details/81066004
版权声明:本文为博主原创文章,转载请附上博文链接!

gojs常用API-画布定义

gojs常用API-画布定义的更多相关文章

  1. gojs常用API (中文文档)

    常用API   操作类API   API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node); var node = {}; node["key&q ...

  2. gojs常用API

    操作类API: 添加节点: myDiagram.model.addNodeData(node); var node = {}; node["key"] = "节点Key& ...

  3. gojs常用API-画布操作

    画布 获取当前画布的json myDiagram.model.toJson(); 加载json刷新画布 myDiagram.model = go.Model.fromJson(model); 删除选中 ...

  4. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  5. 【OpenGL游戏开发之二】OpenGL常用API

    OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...

  6. Express ( MiddleWare/中间件 路由 在 Express 中使用模板引擎 常用API

    A fast, un-opinionated, minimalist web framework for Node.js applications. In general, prefer simply ...

  7. Delphi 常用API 函数

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconic ...

  8. 常用API接口汇总

    下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送.音乐.云.语义识别 ...

  9. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

随机推荐

  1. Google Chrome即将开始警告—停止支持Flash Player

    Adobe 计划在 2020 年让 Flash Player 彻底退休,整个科技行业都在为这个关键时刻做准备,包括浏览器开发机构,Google 作为最主要的一员,试图尽可能顺利地完成 Flash Pl ...

  2. (light oj 1319) Monkey Tradition 中国剩余定理(CRT)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1319 In 'MonkeyLand', there is a traditional ...

  3. Flask自定义转换器,实现路由匹配正则表达式参数

    Flask框架动态路由实现参数传递和Django框架有类似之处,但是相比于Django框架,Flask实现复杂的参数就需要自己自定义转换器来实现了,而不能向Django那样直接使用正则表达式 # 路由 ...

  4. Docker 核心技术之Docker Compose

    Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一 ...

  5. Vue.js 2.x笔记:服务请求axios(8)

    1. axios简介 vue2.0之后,推荐使用axios. axios官方地址:https://github.com/axios/axios 2. axios安装 npm安装: npm instal ...

  6. B+树和B-树的区别

    https://www.jianshu.com/p/92d15df75027 这个网站好! https://www.cs.usfca.edu/~galles/visualization/BTree.h ...

  7. Msi中文件替换

    转自https://blog.csdn.net/davidhsing/article/details/9962377 ※说明:目前可以用于MSI编辑的软件很多,但是有些软件在保存时会在MSI文件中写入 ...

  8. 最小生成树——Prim算法和Kruskal算法

    洛谷P3366 最小生成树板子题 这篇博客介绍两个算法:Prim算法和Kruskal算法,两个算法各有优劣 一般来说当图比较稀疏的时候,Kruskal算法比较快 而当图很密集,Prim算法就大显身手了 ...

  9. VO、DTO、DO、PO

    领域模型中的实体类可细分为4种类型:VO.DTO.DO.PO. PO(Persistent Object):持久化对象,表示持久层的数据结构(如数据库表): DO(Domain Object):领域对 ...

  10. Dijkstra【迪杰斯特拉算法】

    有关最短路径的最后一个算法——Dijkstra 迪杰斯特拉算法是由荷兰计算机科学家迪杰斯特拉于1959 年提出的,因此又叫迪杰斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路 ...