如何在mxgraph中创建上下文填充?

时间:2019-10-10 05:34:42

标签: javascript bpmn mxgraph

我正在尝试创建示例形状的列表,单击画布中的任何形状时将显示这些示例形状。我如何在mxgraph中创建它。

我尝试使用mxgraph中的弹出菜单并尝试向其添加形状。但是我无法创建弹出菜单。我正在使用图形编辑器示例,并希望在单击任何创建的形状时在mxgraph中创建弹出菜单。

 var newDiv = document.createElement("div");
        newDiv.setAttribute("id","geApp");
        var graphs = new mxGraph(document.getElementById("geApp"))
        graphs.setTooltips(true);
        new mxRubberband(graphs);
        var parent = graphs.getDefaultParent();
        graphs.popupMenuHandler.autoExpand = true;

                // Installs context menu
            graphs.popupMenuHandler.factoryMethod = function(menu, cell, evt)
                {
                    menu.addItem('Item 1', null, function()
                    {
                        alert('Item 1');
                    });

                    menu.addItem('Item 2', null, function()
                    {
                        alert('Item 2');
                    });

                    menu.addSeparator();

                    var submenu1 = menu.addItem('Submenu 1', null, null);

                    menu.addItem('Subitem 1', null, function()
                    {
                        alert('Subitem 1');
                    }, submenu1);
                    menu.addItem('Subitem 1', null, function()
                    {
                        alert('Subitem 2');
                    }, submenu1);
                };

我收到错误消息

它跳过

graphs.popupMenuHandler.factoryMethod().

每当单击在画布上创建的形状时,我想在mxgraph中创建一个弹出菜单或一个上下文板。

1 个答案:

答案 0 :(得分:0)

该图没有createElement()函数,而是应使用:

var t = document.createElement('div');

但是为什么要将此div附加到容器中?

请按照以下方式编写代码。您的代码中缺少return语句

graph.popupMenuHandler.factoryMethod = function(menu, cell, evt)
{
    return createPopupMenu(menu, cell, evt);
};

function createPopupMenu(menu, cell, evt)
{
  // Your code to add the menu item
}