Схема циклического дерева JUNG

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

Если я воображаемо удаляю все отношения, кроме отношений с типом * IS_PARENT *, то у меня остается идеальное дерево. Итак, в моих данных есть древовидная структура, которую JUNG не видит из-за других связей, которые делают их циклическими.

Есть две основные причины, по которым я хочу этим заниматься.

  1. Читаемость. В моих данных есть логическая структура, и мне бы очень хотелось ее визуализировать.
  2. У меня есть основания полагать, что это повысит производительность моего приложения. На данный момент производительность очень низкая из-за большого количества вершин и ребер. Я также изучил другой инструмент визуализации под названием Prefuse, и там я обнаружил, что с древовидной структурой работать намного проще, по крайней мере, так было в Prefuse, и я надеюсь, что то же самое будет справедливо и для JUNG.

Так что для меня в этом много пользы. Я надеюсь, что кто-то здесь сможет мне помочь, потому что я не смог что-то найти.


person Pieter-Jan    schedule 16.11.2012    source источник
comment
уже есть учебники по использованию JUNG с neo4j. maxdemarzi.com/2012/03/13/jung-in -neo4j-part-1 maxdemarzi.com / 2012/03/16 / jung-in-neo4j-part-2. где-то в разделе getData я увидел место, где вы можете определить точный тип отношения - в вашем случае тот, который должен дать вам дерево   -  person ulkas    schedule 16.11.2012
comment
Приношу свои извинения, возможно, я не совсем ясно выразился. Мое приложение уже работает. Я просто хочу изменить макет JUNG с FRLayout (который кажется довольно сложным вычислением) на TreeLayout, который должно быть намного проще рисовать. К сожалению, я обогатил свое дерево другими отношениями, которые делают его циклическим, поэтому JUNG не принимает его как дерево. Я хочу, чтобы JUNG нарисовал эти другие отношения, но я не хочу, чтобы они принимались во внимание в отношении макета.   -  person Pieter-Jan    schedule 19.11.2012


Ответы (1)


Я нашел решение. Я декомпилировал класс TreeLayout и просто изменил способ вычисления количества дочерних элементов, и теперь он работает как шарм. Только при использовании предикатов запоминает старые позиции, а не новые ...

person Pieter-Jan    schedule 21.11.2012
comment
Большое спасибо за ответ на свой вопрос, а не за то, что позволили этому сгнить. Я сделал то же самое, и это работает как шарм! - person nook; 07.08.2013