gojs常用API-画布定义
持续更新中
基础画布定义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-画布定义的更多相关文章
- gojs常用API (中文文档)
常用API 操作类API API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node); var node = {}; node["key&q ...
- gojs常用API
操作类API: 添加节点: myDiagram.model.addNodeData(node); var node = {}; node["key"] = "节点Key& ...
- gojs常用API-画布操作
画布 获取当前画布的json myDiagram.model.toJson(); 加载json刷新画布 myDiagram.model = go.Model.fromJson(model); 删除选中 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- 【OpenGL游戏开发之二】OpenGL常用API
OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...
- Express ( MiddleWare/中间件 路由 在 Express 中使用模板引擎 常用API
A fast, un-opinionated, minimalist web framework for Node.js applications. In general, prefer simply ...
- Delphi 常用API 函数
Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconic ...
- 常用API接口汇总
下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送.音乐.云.语义识别 ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
随机推荐
- Maven运行报错
在创建Maven项目时,出现报错:No goals have been specified for this build pom.xml文件加入 <build><defaultGo ...
- OO第二单元总结——多线程电梯
第五次作业分析 1.设计策略 调度器采用单例模式,内部设请求队列,对请求队列的一切操作(查.增.删)都在调度器内完成,且都要求串行,从而确保线程安全.接收器和电梯是两个线程:接收器接受请求调用调度器来 ...
- Hive基础知识
一.产生背景 1.MapReudce编程繁琐,需要编写大量的代码 2.HDFS中存放的都是文件,在HDFS中没有Scheme的概念,无法用SQL进行快速的查询. 二.Hive的概念 Hive是基于Ha ...
- Django(九)下:Ajax操作、图片验证码、KindEditor使用
三.Ajax操作 ajax操作基于浏览器的xmlHttpRequest对象,IE低版本是另外一个对象,jQuery 1 版本对那两个对象做了封装,兼容性最好,2 .3版本不再支持IE低版本了. Aja ...
- 一次单体测试的采坑--MatcherAssert.assertThat---org.hamcrest 和org.mockito
单体测试测试环境ci上报这个错, 本地没问题. org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Descri ...
- 利用ajax技术 实现用户注册。
一.ajax? 异步加载技术,在不刷新网页的前提下,实现部分网页内容的更新! AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容. 思考? 注册界面刚好可以应用 ...
- Conda常见命令
Anaconda,Miniconda,Conda,Pip的区别: Anaconda:用于科学计算的python发行版,里面预装好了conda,某个版本的python,众多packages,科学计算工具 ...
- Java基础--面向对象编程3(继承)
1.继承的作用 为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中. 这个公共的类称为父类(super class),继承于父类的类称为子类(sub class). 2.java继 ...
- Event filter with query "SELECT * FROM __InstanceModi
Event filter with query "SELECT * FROM __InstanceModi 问题描述: Details -Event filter with quer ...
- 安装windows server 2008r2服务器操作系统
R4900 G2 UEFI使用RAID-1000配置阵列 http://123.57.42.60/12755.html 首先进入到进到UEFI中阵列配置界面, 1Legacy BIOS Mode进入阵 ...