mxgraph: я хотел бы добавить кнопку для отключения / включения графика и панели инструментов - PullRequest
0 голосов
/ 26 февраля 2020

Я пытался отключить график, не позволяя ячейкам на графике следовать за кодом. graph.setCellsSelectable(false); но это не работает, все еще можно выбрать ячейку, (только отключенное изменение размера)

И для отключения панели инструментов я пытался удалить или заменить событие ondrag, это правильно? Теоретически я думаю, что у mxgraph есть свой собственный обработчик событий для перетаскивания элемента панели инструментов.

mx_toolbar.appendChild(
    mxUtils.button("Disable/Enable", function() {
         document.querySelectorAll('.toolbar > button').addEventListener(function (e) {
             e.preventDefault()
             return false;
         });
    }
)

Надеюсь на вашу помощь. Я не против, пока это рабочее решение. Спасибо

1 Ответ

1 голос
/ 27 февраля 2020

Вместо удаления или изменения обработчика событий вы можете просто наложить область, которую хотите отключить, вместе с css.

      var toolbarContainer = document.querySelector(".toolbar");
      var overlay = document.querySelector(".toolbar-overlay")

      if (!overlay) {
        overlay = document.createElement('div')
        overlay.className = 'toolbar-overlay'
        toolbarContainer.appendChild(overlay)
      } else {        
        overlay.parentNode.removeChild(overlay)
      }


Вот css для оверлея div


.toolbar-overlay {
  position: absolute;
  top: 0;
  height: 100%;
  width: 100%;
  opacity: 0.4;
  background: #e1e1e1;
}
  • Примечание: Вы должны убедиться, что родительский div оверлея div должен располагаться относительно этого css работает!
...