导入项目到IDEA
从github上下载源码
https://github.com/jgraph/drawio
修改配置
File - Project Structure - Facets 点击+号 选中web,然后修改Web Resource Directories路径。
在Modules的Dependencies中添加lib包和JDK的路径
选择Artifacts点击+号 - Web Application:Exploded - From Modules… 添加war。
配置tomcat
修改完成后,启动tomcat就可以访问服务了,点击右上角的小地球可以修改语言。
修改代码并调试
参数说明
offline = 1,使用离线模式,并且关闭“下载桌面”通知
offline = 0 ,URL参数清除缓存
dev = 1 ,启用调试模式
stealth = 1,禁用其他在线存储设备
启用调试模式
http://localhost:8080/drawio_war_exploded/?dev=1
直接访问会报错,需要做一些修改,找到index.html页面修改
// Changes paths for local development environment
if (urlParams['dev'] == '1') {
var mxDevUrl = document.location.origin+document.location.pathname;
if (document.location.protocol == 'file:') {
mxDevUrl = '../../mxgraph2';
mxForceIncludes = true;
}
var geBasePath = mxDevUrl + 'js/mxgraph/';
var drawDevUrl = mxDevUrl;
mxscript(drawDevUrl + 'js/diagramly/Init.js');
mxscript(drawDevUrl + 'js/mxgraph/Init.js');
mxscript(drawDevUrl + 'js/mxgraph/mxClient.js');
mxscript(drawDevUrl + 'js/diagramly/Devel.js');
mxscript(drawDevUrl + 'js/PostConfig.js');
}
mxClient.js文件是放在etc目录下的,这个目录不会被tomcat加载,要把文件复制到/webapp/js/mxgraph目录下。
隐藏菜单按钮
修改webapp/js/mxgragh/Menus.js
Menus.prototype.defaultMenuItems = [];
访问时打开指定文件
修改webapp/js/diagramly/LocalFile.js,这里ajax需要使用同步请求,不然还没请求到数据就会执行下面的代码,导致报错。
修改文件自动保存到指定路径
修改webapp/js/diagramly/DrawioFile.js
目前还在开发中,后续会继续完善