Самый простой формат для создания графика для YED
В настоящее время я пытаюсь сбросить график в Java для YEd. Я пытался использовать GraphML для формата, но я нашел его очень громоздким. В частности, размер узлов не изменится под размер метки, поэтому большую часть времени метка будет больше, чем фактический файл.
Есть ли что-нибудь, что я могу сделать, чтобы исправить это, не входя и не указывая ширину и высоту каждого узла?
Спасибо
1 ответ
Есть способ, хотя этот способ использует неофициальный API и может не работать ни в одном выпуске, кроме текущего (3.9.2 на момент написания).
В GraphML добавьте следующий ключ на уровне графика:
<g:key id="ppkey" for="graph" yfiles.type="postprocessors"/>
<g:graph id="G" edgedefault="directed">
<g:data key="ppkey">
<y:Postprocessors>
<y:Processor class="A.A.A.A.A">
<y:Option name="IGNORE_WIDTHS" value="false"/>
<y:Option name="IGNORE_HEIGHTS" value="true"/>
<y:Option name="ADAPT_TO_MAXIMUM_NODE" value="false"/>
</y:Processor>
</y:Postprocessors>
</g:data>
</g:graph>
Как вы можете видеть, "AAAAA", очевидно, является запутанным именем класса, которое может меняться между сборками и нарушать ваш скрипт.
Причина этого неудобства на самом деле довольно проста: yEd не предполагается использовать в автоматическом режиме (лицензия даже явно запрещает чисто автоматический вариант использования) и поэтому оптимизирована для интерактивного использования. Таким образом, нажатие на кнопку на самом деле предназначено. Зачем? Потому что yEd - это бесплатный продукт, основанный на мощной коммерческой библиотеке, и он бесплатен только потому, что опытные пользователи покупают лицензию на библиотеку и таким образом способствуют развитию и поддержке yEd. Если вам действительно нужно программно использовать эту мощь, вам следует взглянуть на лицензирование библиотеки напрямую.
Тем не менее, вы также можете попробовать импортировать Excel - он автоматически выполнит этот шаг за вас, однако вам нужно будет создать файл Excel, чтобы начать с.