В каком порядке (если есть) узлы нарисованы в редакторе GEF?
Я пытаюсь подключить (очень) простой алгоритм построения графиков в мой редактор GEF. Я делаю это просто добавляя calculateX()
а также calculateY()
методы к моему NodeEditPart
s' refreshVisuals()
(графическая фигура имеет XYLayout
очевидно).
Это работает, хотя только для тех узлов, которые имеют соединение с другим узлом, источником которого они являются. Когда я пытаюсь получить доступ к ограничениям для узлов, с которыми связан данный узел, целью которого он является, я получаю NullPointerException
,
Я предполагаю, что это связано с порядком, в котором узлы отрисовываются в GEF.
Я также предполагаю, что не существует такой вещи, как анализатор элементов, проверяющий, какие элементы должны быть нарисованы первыми, а скорее элементы либо рисуются в том порядке, в котором они отображаются в List
или одновременно через EditPartFactory
(который, однако, должен получить свой вклад из некоторой упорядоченной коллекции в модели).
Но как это на самом деле сделано?
1 ответ
В GEF элементы отрисовываются в порядке их появления в списке, возвращаемом getModelChildren()
(Я не помню, если от начала до конца или назад, но вы можете проверить код)
Тем не менее, я не мог понять, в чем именно была ваша проблема, поэтому, если вы можете предоставить более подробную информацию, я могу помочь вам еще немного.