Я создал собственный редактор, используя mxGraph . В моем редакторе пользователь должен иметь возможность создать acyclic graph
.Когда пользователь will try to make a cycle in the graph
, должно появиться всплывающее окно, информирующее пользователя о том, что cycles are not permitted
на графике и откат должен иметь место.
Объект mxGraph
имеет свойство multigraph (boolean)
, которое указывает, должен ли граф разрешать множественные соединения между одной и той же парой вершин, и имеет поведение, подобное тому, которое я хочу описал выше.
Я искал в коде объекта mxGraph любое похожее свойство, заявляя, что график должен быть ациклическим, но пока не нашел ничего.Возможно, я мог бы реализовать свою собственную пользовательскую логику, чтобы сделать граф ациклическим, но я должен каждый раз, когда я соединяю пару вершин, проходить через принадлежащее дерево целевой вершины, чтобы проверить, будет ли создан цикл, который будет очень дорогим /отнимает много времени, так как граф может включать в себя тысячи вершин и ребер, поэтому я ищу простой / нестандартный способ (если таковой существует) для его достижения.
Пример - ациклический граф (ОК)
Пример - циклический график (не ОК - не допускается)
Любая помощь будет принята с благодарностью, спасибо.