В каком порядке (если есть) узлы нарисованы в редакторе GEF?

Я пытаюсь подключить (очень) простой алгоритм построения графиков в мой редактор GEF. Я делаю это просто добавляя calculateX() а также calculateY() методы к моему NodeEditParts' refreshVisuals() (графическая фигура имеет XYLayout очевидно).

Это работает, хотя только для тех узлов, которые имеют соединение с другим узлом, источником которого они являются. Когда я пытаюсь получить доступ к ограничениям для узлов, с которыми связан данный узел, целью которого он является, я получаю NullPointerException,

Я предполагаю, что это связано с порядком, в котором узлы отрисовываются в GEF.

Я также предполагаю, что не существует такой вещи, как анализатор элементов, проверяющий, какие элементы должны быть нарисованы первыми, а скорее элементы либо рисуются в том порядке, в котором они отображаются в Listили одновременно через EditPartFactory (который, однако, должен получить свой вклад из некоторой упорядоченной коллекции в модели).

Но как это на самом деле сделано?

1 ответ

Решение

В GEF элементы отрисовываются в порядке их появления в списке, возвращаемом getModelChildren() (Я не помню, если от начала до конца или назад, но вы можете проверить код)

Тем не менее, я не мог понять, в чем именно была ваша проблема, поэтому, если вы можете предоставить более подробную информацию, я могу помочь вам еще немного.

Другие вопросы по тегам