Prefuse: перезагрузка файлов XML

Я новичок в наборе инструментов визуализации prefuse и у меня есть пара общих вопросов. Для своей цели я хотел бы выполнить первоначальную визуализацию с использованием префьюза (graphview/graphml). После рендеринга, после щелчка пользователем узла, я хотел бы полностью перезагрузить новый XML-файл для новой визуализации. Я хочу сделать это, чтобы позволить мне «предварительно упаковать» графики для отображения.

Например. Если я буду искать Теда. Я хотел бы иметь файл xml, относящийся к загрузке Теда и отображению. Теперь на дисплее я вижу, что у Теда есть связанные узлы с именами Билл и Джо. Когда я нажимаю Джо, я хотел бы очистить дисплей и загрузить XML-файл, связанный с Джо. И так далее.

Я изучил загрузку одного очень большого XML-файла, содержащего всю информацию об отношениях между узлами и узлами, и позволяющий prefuse обрабатывать это, используя переходы с одного уровня на другой. Однако со временем я уверен, что проблемы с производительностью системы возникнут из-за размера данных.

Заранее спасибо за любую помощь, Джон


person Community    schedule 07.10.2008    source источник


Ответы (2)


Конечно, как вы сказали, один из вариантов - загрузить все узлы, а затем установить невидимые узлы, которые вам не нужны. Prefuse довольно хорошо масштабируется, но, конечно, у него есть свои пределы. Второй вариант — просто создать новую панель и заменить старую панель. Я использовал вариант 2, и он работает довольно хорошо.

person Jay Askren    schedule 10.01.2010

Я далек от эксперта по проблемам производительности Prefuse, но я думаю, что определенно более ресурсоемко загружать сразу огромный файл xml, чем выполнять обработку только для повторной загрузки необходимых узлов.

Я не знаю, какой график вы используете, но я бы разместил «refreshGraph», который удаляет график из объекта визуализации, отменяет действие, отменяет макет, обновляет список действий и перезапускает. Вероятно, получилось бы что-то вроде этого:

public void refresh(clickedNode){
    visualization.removeGroup(GRAPH);
    visualization.removeGroup(AGGR);
    activity.cancel();
    actionList.cancel();
    visualization.reset();
    // process the XML and reload your graph here
}
person alemangui    schedule 13.11.2012