Как создать контекстную панель в mxgraph? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать список примеров фигур, которые будут отображаться при нажатии любой фигуры на холсте. Как мне создать это в 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 голосов
/ 10 октября 2019

График не имеет функции createElement (), вместо этого вы должны использовать:

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

Но почему вы добавляете этот div кконтейнер?

Пожалуйста, напишите код следующим образом. В вашем коде отсутствует инструкция возврата

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

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