У меня есть приложение, которое использует сложную графоподобную структуру в качестве конфигурации. Само приложение напоминает брандмауэр NetGraph - или netfilter , поэтому у узлов графа есть типы и свойства (которые соответствуют операциям), и они связаны с направленными ребрами.
Мне бы хотелось иметь простой в использовании редактор конфигурации для моего приложения, который обеспечивает визуализацию и редактирование конфигурации в виде графика.
В сценарии моей мечты приложение получит эту конфигурацию в виде файла в одном из популярных графических форматов (например, TGF , DOT , GraphML , и т.д.), разберите его и используйте.
Несколько требований (не очень строго, я открыт для рассмотрения различных вариантов) - редактор графиков должен быть:
- доступно для встраивания в веб-интерфейс - т.е. реализовано в Javascript / HTML, Flash или в виде Java-апплета
- может загрузить график в стиле TGF (то есть без инструкций по разметке, узлы будут без координат) и автоматически разложить его в несколько приличном виде
- возможность сохранить этот график обратно
- возможность загрузки / сохранения с использованием запросов на HTTP-сервер, а не в файл напрямую
- настраиваемый, чтобы заставить его работать со строгим набором типов узлов (чтобы пользователь не мог просто создать произвольный тип узла или произвольные свойства для данного узла)
- с открытым исходным кодом
До сих пор я нашел yEd и его версию Flash, Graphity - оба выглядят круто, но их нельзя настроить (чтобы лишить их функциональности, то есть создание нескольких узлов типа), а не с открытым исходным кодом, поэтому встраивание их в любое место обещает быть несколько болезненным.
Другой вариант, который я рассматриваю, - это уничтожить всю идею «визуального редактора» и заставить пользователя просто записать определения в стиле TGF или DOT в виде простого текстового файла и визуализировать их для последующей проверки с использованием чего-либо как GraphViz . Это жизнеспособный путь?