drawio 网页版二次开发(2):开始修改代码

目录

一 说明

二 打开开发环境 

1. 代码调整

2. 修改访问链接

 3. 注意

三  部分功能的代码汇总

1.  保存功能

2. 菜单栏折叠按钮功能

3.  顶部菜单栏

4.在顶部菜单栏中的【文件】菜单中新增选项

(1) 方法一:单独增加

(2) 方法二 :使用addMenuItems增加(我这次添加了一个保存到数据库的功能)

5. 底部菜单栏

6. 隐藏底部菜单栏的按钮

7. 左侧节点栏

8. 左侧菜单栏底部的【更多图形】的点击后弹窗

9. 元素右击添加点击事件

10.  查找、替换弹窗

11.  共享按钮隐藏

(1)隐藏页面右上角的共享按钮

(2)隐藏菜单栏【文件】下拉框中的共享按钮

12. 快捷键以及其功能配置

四 最后


一 说明

        应公司项目要求,需要对drawio进行二次开发,并将html界面通过iframe 嵌入到本公司产品中使用,但是由于功能限制,做到最后还是放弃了使用drawio。但是之前的研究内容可不能浪费。便准备写个专栏进行记录,希望能够帮到需要将drawio进行二次开发的朋友,其中有涉及到不正确的地方还请大家多包涵!

二 打开开发环境 

        应该有小伙伴发现,修改代码后,刷新界面,为什么界面没有任何变化。那是因为还需要对某些地方进行调整。具体调整如下:

1. 代码调整

        如下图:在webapp根目录下找到index.html 文件,将黄色方框里面的代码(原始代码)修改为绿色方框的代码(即修改后的代码),这是为了注释掉远程地址 ,否则测试环境下不会请求本地修改后的 js 代码。

2. 修改访问链接

        正常访问是直接访问 http://localhost:3000/,但是开发模式的话,需要在访问url后面加上 ?.dev=1 。即 http://localhost:3000/?dev=1 。 这样,代码中修改的部分就可以看到效果了。

 3. 注意

        文件中有很多后缀为 .min.js 的文件,这个是自动生成的,千万不能改哦。

三  部分功能的代码汇总

1.  保存功能

        代码位置:src/main/webapp/js/diagramly/Dialogs.js        

2. 菜单栏折叠按钮功能

代码位置:src/main/webapp/js/diagramly/App.js

3.  顶部菜单栏

(1) 代码位置:src/main/webapp/js/diagramly/Menus.js

4.在顶部菜单栏中的【文件】菜单中新增选项

        新增选项有两种方式,如下:

        前提,需要添加多语言文件,比如中英对照文件:src/main/webapp/resources/dia_zh.txt

(1) 方法一:单独增加

        文件地址:src/main/webapp/js/diagramly/Menus.js

        ① 添加对应的字段(自己找准添加的位置写代码即可)

        ② 添加对应的点击功能

        ③  刷新界面,运行就可见到新的功能按钮。

(2) 方法二 :使用addMenuItems增加(我这次添加了一个保存到数据库的功能)

        ① 添加菜单按钮,代码位置:src/main/webapp/js/diagramly/Menus.js

        ②  添加点击事件:src/main/webapp/js/grapheditor/Actions.js

        ③  添加快捷键:src/main/webapp/js/grapheditor/EditorUi.js

        ④  保存并刷新界面,运行效果如下:

5. 底部菜单栏

(1) 代码位置:src/main/webapp/js/diagramly/Pages.js

(2) 在菜单栏中添加功能(同样也要先添加多语言对照文件)

(3)保存代码后,刷新界面,点击菜单栏,展示如下效果: 

6. 隐藏底部菜单栏的按钮

代码位置:src/main/webapp/js/diagramly/Pages.js 

7. 左侧节点栏

        

 代码位置:src/main/webapp/js/diagramly/sidebar/Sidebar.js

8. 左侧菜单栏底部的【更多图形】的点击后弹窗

代码位置: src/main/webapp/js/diagramly/Dialogs.js

9. 元素右击添加点击事件

 (1) 添加事件的中英文对应名字:src/main/webapp/resources/dia_zh.txt

(2)  将名字添加到菜单上

        注意:代码中的  -  表示添加一行分割线。

        添加方式有两个(需要看具体放的位置在哪里,看代码具体分析。):

        ① 添加在:src/main/webapp/js/diagramly/EditorUi.js

        ② 添加在:src/main/webapp/js/grapheditor/Menus.js

 (3) 添加点击事件:src/main/webapp/js/grapheditor/Actions.js

        在函数Actions.prototype.init中添加:

(4) 保存后运行效果如下:

10.  查找、替换弹窗

        

 触发事件:src/main/webapp/js/diagramly/Menus.js 中的 init 函数中的 findreplace 事件

弹出的弹窗代码位置: src/main/webapp/js/diagramly/Dialogs.js

11.  共享按钮隐藏

(1)隐藏页面右上角的共享按钮

代码位置: src/main/webapp/js/diagramly/App.js 具体位置如下(注释掉框起来的代码即可)

(2)隐藏菜单栏【文件】下拉框中的共享按钮

代码地址:src/main/webapp/js/diagramly/Menus.js  。具体位置如下(注释掉即可):

12. 快捷键以及其功能配置

代码位置:src/main/webapp/js/grapheditor/EditorUi.js

功能配置: src\main\webapp\js\grapheditor\Actions.js

四 最后

        代码的修改就到这里了。以后要是有其他的记录,我会继续补充。下一章开始写drawio的打包和部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3029419.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

中北大学软件学院javaweb实验二JSP应用开发实验报告

实验时间 2024年4月 25 日17时至 22 时 学时数 4 1.实验名称 实验2:JSP应用开发(2学时) 2.实验目的 (1)学会编写和运行简单的JSP页面,理解其运行原理; (2)学会使用JSP的声明、表达式、脚…

Python数据科学 | ​Python 离群点检测算法 -- GMM

本文来源公众号“Python数据科学”,仅用于学术分享,侵权删,干货满满。 原文链接:​Python 离群点检测算法 -- GMM 星星在天空中聚集或分散,呈现出自然的分布。在统计学中,K-均值法是一种著名的聚类技术&a…

Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)

1 漏洞描述 CVE-2020-1938 是 Apache Tomcat 中的一个严重安全漏洞,该漏洞涉及到 Tomcat 的 AJP(Apache JServ Protocol)连接器。由于 AJP 协议在处理请求时存在缺陷,攻击者可以利用此漏洞读取服务器上的任意文件,甚至…

keil5软件安装教程(MDKv5.39)

keil5软件安装分为三部分: 目录 1.安装mdk 2.激活mdk 3.安装STM32芯片包 1.安装mdk 安装包链接:链接:https://pan.baidu.com/s/1PZoGhzI5Y19ROv7xe9QJKA?pwdgt3s 提取码:gt3s 1、下载keil5的压缩包并解压,鼠…

通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的

其实,这一章我写不好,因为这其中会涉及到一些计算和一些广播等概念,本人不善于此项。在此略述,可以参考。 每台设备的不同连接在获得有效的IP地址后,会根据IP地址的规则和掩码的规则,在操作系统和交换机&a…

【C++】继承 — 继承的引入、赋值切片详细讲解

前言 我们知道C语言是一门面向对象编程的语言,而面向对象编程有三大特性,它们分别是: 封装继承多态 目录 1. 继承的概念及定义1.1继承的概念1.2继承的定义格式1.3 继承的使用 2 基类和派生类对象赋值转换3 继承中的作用域3.1 派生类对象的存…

基于springboot+vue+Mysql的体质测试数据分析及可视化设计

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Windows11提示升级,我要点确定吗?

Windows 11自2021年10月推出以来,一直保持着缓慢而稳定的增长,相对来说在游戏PC上的影响力较大, 而Windows 10也即将于2025年10月结束支持。 截至2024年,Windows 11的主要版本包括24H2、 23H2、22H2和21H2。 24H2:20…

5月白银现货最新行情走势

美联储5月的议息会议举行在即,但从联邦公开市场委员会(FOMC)近期透露的信息来看,降息似乎并没有迫切性。——美联储理事鲍曼认为通胀存在"上行风险",明尼阿波利斯联邦储备银行行长卡什卡利提出了今年不降息的…

数学:人工智能领域的基石与灵魂

在科技日新月异的今天,人工智能(AI)已经渗透到了我们生活的方方面面,从智能家居、智能医疗到自动驾驶、智能客服,AI无处不在。然而,当我们赞叹于AI的神奇时,却往往忽视了其背后的推动力——数学…

5月游戏市场迎来新的体验,网易两款游戏重磅出炉

易采游戏网5月9日消息,随着科技的飞速发展,手机游戏已经成为人们休闲娱乐的重要方式。在这个领域,网易作为国内领先的游戏开发商,一直致力于为玩家带来高品质的游戏体验。近日,网易携手国际大厂Square Enix&#xff0c…

列表、字典推导式介绍和用法|lambda的介绍和用法

列表、字典推导式介绍和用法|lambda的介绍和用法 列表推导式示例应用与传统写法代码行数直观比较 字典推导式示例应用 lambda示例应用 列表推导式、字典推导式、lambda使用简洁语法进行代码的编写 列表推导式 用于快速创建新的列表,通过对现有列表进行迭代和筛选。…

技术速递|Python in Visual Studio Code 2024年5月发布

排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布! 此版本包括以下公告: “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…

Java医院绩效考核系统源码maven+Visual Studio Code一体化人力资源saas平台系统源码

Java医院绩效考核系统源码mavenVisual Studio Code一体化人力资源saas平台系统源码 医院绩效解决方案包括医院绩效管理(BSC)、综合奖金核算(RBRVS),涵盖从绩效方案的咨询与定制、数据采集、绩效考核及反馈、绩效奖金核…

Hadoop | 数据清洗

# 数据清洗概念 通常情况下,大数据平台获得原始数据文件中,存在大量无效数据和缺失数据,需要再第一时间,对数据进行清洗,获得符合后续处理需求的数据内容和格式 # 需求 对手机流量原始数据,将其中的手机号…

《Decoupled Contrastive Learning for Long-Tailed Recognition》阅读笔记

论文标题 《Decoupled Contrastive Learning for Long-Tailed Recognition》 针对长尾识别的解耦对比学习 作者 Shiyu Xuan 和 Shiliang Zhang 来自北京大学计算机学院多媒体信息处理国家重点实验室 初读 摘要 监督对比损失(Supervised Contrastive Loss, SC…

使用GitLab自带的CI/CD功能在远程服务器部署项目(三)

前置内容: 通过Docker Compose部署GitLab和GitLab Runner(一) 使用GitLab自带的CI/CD功能在本地部署项目(二) 目录 一、在GitLab服务器上生成私钥与公钥 二、将公钥拷贝到应用服务器上 三、将私钥给到Docker Exec…

论文阅读:The Unreasonable Ineffectiveness of the Deeper Layers 层剪枝与模型嫁接的“双生花”

作者实证研究了针对流行的开放式预训练 LLM 系列的简单层修剪策略,发现在不同的 QA 基准上,直到去掉一大部分(最多一半)层(Transformer 架构)后,性能的下降才会降到最低。为了修剪这些模型&…

车载电子电器架构 —— 应用软件开发(上)

车载电子电器架构 —— 应用软件开发(上) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…