Javascript MxGraph中节点、边和画布的自定义(不同)右键单击菜单
我需要在右键单击上下文菜单中提供不同的操作/选项,具体取决于用户是单击节点还是边缘,还是单击空白画布区域 我一直在研究drawio/jgraph源代码,特别是menus.js文件,以了解右键单击菜单是如何特定于上下文的。与顶点和边相比,draw.io应用在画布上似乎有不同的右键单击菜单。但是,我还没有遇到对单击的对象进行区分的代码Javascript MxGraph中节点、边和画布的自定义(不同)右键单击菜单,javascript,angular,mxgraph,Javascript,Angular,Mxgraph,我需要在右键单击上下文菜单中提供不同的操作/选项,具体取决于用户是单击节点还是边缘,还是单击空白画布区域 我一直在研究drawio/jgraph源代码,特别是menus.js文件,以了解右键单击菜单是如何特定于上下文的。与顶点和边相比,draw.io应用在画布上似乎有不同的右键单击菜单。但是,我还没有遇到对单击的对象进行区分的代码 在此方面的任何帮助或指导都将不胜感激。您应该扩展graph.popupMenuHandler.factoryMethod功能,让我给您一个代码示例 让图形成为您的图形
在此方面的任何帮助或指导都将不胜感激。您应该扩展
graph.popupMenuHandler.factoryMethod
功能,让我给您一个代码示例
让图形
成为您的图形对象
graph.popupMenuHandler.factoryMethod = function(menu, cell, evt)
{
if(cell.edge){
menu.addItem('First edge option', null, function()
{
alert('This is the first option of edge ');
})
menu.addItem('Second edge option', null, function()
{
alert('This is the second option of edge ');
})
}
if(cell.vertex){
menu.addItem('First vertex option', null, function()
{
alert('This is the first option of vertex ');
})
menu.addItem('Second vertex option', null, function()
{
alert('This is the second option of vertex ');
})
}
}
希望这有帮助:)感谢您的快速回复-这比drawio中的代码更简单!为了处理非顶点和边的情况,我不得不添加一些右括号和一个if,但效果很好。关于如何设置菜单背景色等,有什么建议吗?你到底想做什么?你可以编辑
src/js/util/mxPopupMenu.js
addItem
函数来设置你自己的风格,如果你有更多问题,请发布一个新问题:)由于应用程序的其余部分是在Angular8+Bootstrap4中构建的,与其他下拉菜单相比,mxGraph中的上下文菜单看起来有些不合适。所以我想知道我如何能在造型上带来一些平等。不用担心,如果需要的话,我会做更多的挖掘并发布一个新问题:)。谢谢!