Как запретить циклические краевые соединения между вершинами на mxgraph (ациклический граф) - PullRequest
0 голосов
/ 21 мая 2019

Я создал собственный редактор, используя mxGraph . В моем редакторе пользователь должен иметь возможность создать acyclic graph.Когда пользователь will try to make a cycle in the graph, должно появиться всплывающее окно, информирующее пользователя о том, что cycles are not permitted на графике и откат должен иметь место.

Объект mxGraph имеет свойство multigraph (boolean), которое указывает, должен ли граф разрешать множественные соединения между одной и той же парой вершин, и имеет поведение, подобное тому, которое я хочу описал выше.

Я искал в коде объекта mxGraph любое похожее свойство, заявляя, что график должен быть ациклическим, но пока не нашел ничего.Возможно, я мог бы реализовать свою собственную пользовательскую логику, чтобы сделать граф ациклическим, но я должен каждый раз, когда я соединяю пару вершин, проходить через принадлежащее дерево целевой вершины, чтобы проверить, будет ли создан цикл, который будет очень дорогим /отнимает много времени, так как граф может включать в себя тысячи вершин и ребер, поэтому я ищу простой / нестандартный способ (если таковой существует) для его достижения.

Пример - ациклический граф (ОК)

enter image description here

Пример - циклический график (не ОК - не допускается)

enter image description here

Любая помощь будет принята с благодарностью, спасибо.

...