Как создать контекстную панель в 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 всякий раз, когда щелкают фигуру, созданную на холсте.


person Prateek Naik    schedule 10.10.2019    source источник


Ответы (1)


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

вар т = 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
}
person Arijit Sil    schedule 10.10.2019
comment
Я попробовал так и даже удалил контейнер. но все же я не вижу всплывающее меню. - person Prateek Naik; 10.10.2019
comment
Во время выполнения он полностью пропускает метод popupmenu.factory. - person Prateek Naik; 10.10.2019
comment
пожалуйста, проверьте выше, я отредактировал вопрос с моим последним кодом, который я пробовал - person Prateek Naik; 10.10.2019
comment
Пожалуйста, проверьте приведенный выше код и дайте мне знать, если он работает для вас. - person Arijit Sil; 10.10.2019
comment
все то же самое... он пропускает функцию, переходит на следующую строку. - person Prateek Naik; 11.10.2019
comment
Можете ли вы показать мне скриншот консоли, как только вы щелкнете правой кнопкой мыши по фигурам, которые находятся внутри контейнера mxgraph? - person Arijit Sil; 11.10.2019