mxgraph 目录结构以下:javascript
Gruntfile.js
文件,用于构建生成环境版本javascript/src
为框架源码;javascript/examples
为示例代码。mxgraph 仓库主要包含几类类型的资源,最核心的是 javascript/src
目录下的图形引擎源码;其次是 javascript/src/editor
目录中基于图形引擎实现的图形编辑器;以外还有基于 .net、java 的后端示例;以及做为学习资源的 docs
目录下的文档,和 javascript/examples
目录下的示例代码,下面逐一解释。css
学习 mxgraph,能够先从官方提供的文档出发。mxgraph 仓库中存在如下几类文档,对入门有比较大的帮助:html
建议的阅读顺序是,一细读 tutorial,可以帮助创建对 mxgraph 的感性认知;二略读 manual,了解 mxgraph 数据模型的管理方法;三细读各个示例代码,从示例中学习、领悟各种接口的用法;必要时能够结合 api 文档查阅各个接口的详细信息。java
以上各种文档都可双击对应的 html 文件,在浏览器打开查阅。git
提示:mxgraph 官方文档质量写的简直惜字如金,不少概念一笔带过,没有详尽说明,加上社区对 mxgraph 的讨论热度很低,致使对于使用者而言,框架学习成本很高。这种情况下,笔者认为最有效的学习方法只能是结合示例、API 文档、源码,三个维度互相对照学习。github
mxgraph 框架代码存放于 javascript/src 目录下,主要文件有:json
mxgraph └─── javascript │ └─── src │ └─── css │ └─── images │ └─── js │ └─── editor │ └─── handler │ └─── io │ └─── layout │ └─── model │ └─── shape │ └─── util │ └─── view │ | index.txt │ └─── resources │ │ index.html │ │ mxClient.js │ │ mxClient.min.js
javascript/src/js
: mxgraph 的 JS 代码,基本上全部功能都是在这里实现。javascript/src/css
: mxgraph 组件的样式实现,可暂时忽略。javascript/src/images
: 图表编辑器中须要用到的图像资源,可忽略。javascript/src/resource
: 图形编辑器的多语言定义文件,可忽略。mxgraph 的核心功能都定义在 javascript/src/js
目录下,因此后续的学习主要都是集中在这部分代码中。几个子目录的主要做用分别为:后端
model
子目录是数据管理模型的实现,数据模型记录着 mxgraph 实例的图形结构及节点的详细信息,并对外暴露一系列更新、删除、插入接口,咱们使用 mxgraph 时会跟这部分接口常常打交道。关于数据模型的更多探索,将在后续补充。shape
定义了几种主要的图元类型,包括线、标签、箭头、多边形、四边形、泳道等。view
是框架对外交互的主要接口层,包含了图形交互接口 mxGraph 类、样式管理接口 mxStylesheet、图元编辑器 mxCellEditor 等。handler
定义了框架中图元的几种常见的交互行为逻辑,好比处理快捷键逻辑的 mxKeyHandler;处理链接线分片的 mxEdgeSegmentHandler;处理图元高亮效果的 mxCellHighlight 等。layout
定义 mxgraph 所使用的布局逻辑,包括堆叠布局 mxStackLayout;泳道布局 mxSwimlaneLayout;圆形布局 mxCircleLayout。util
包含各类工具函数。io
定义了几种应对不一样时态的编解码器,可用以实现 mxgraph 实例状态的持久化。editor
短小精悍的编辑器实现,内置快捷键、弹出菜单、工具栏等功能支持。此外, javascript/src/mxClient.js
是框架的入口文件,它一方面定义了一系列环境变量;一方面声明框架的基础依赖文件列表。 javascript/src/mxClient.min.js
是通过 etc/build/Gruntfile.js
执行链接、合并、压缩操做后的版本,可用做生产环境库文件。api
提示:mxgraph 仓库包含两类功能代码,一是做为底层的图形引擎;二是做为上层应用的图形编辑器。源码中
javascript/src/js/editor
是编辑器的实现代码,javascript/src/css
、javascript/src/images
、javascript/src/resource
都是图形编辑器的资源依赖,建议读者暂时忽略这部分代码,先集中精力学习图形引擎的使用方法。浏览器
mxgraph 官方提供的示例都在 javascript/examples
目录下,合计有 88 个,能够双击 javascript/index.html
打开示例索引文档。虽然有如此多的示例代码,但每个示例都没有足够的细节说明;官方也没有提供一个由浅入深的学习流程,为此我简单总结了一份阅读顺序:
javascript/docs/jsapi/index.html
文档。精度以上事例,结合 javascript/docs/jsapi/index.html
文档相信读者会对 mxgraph 有一个更高维度的认知。