Как детские фигуры делают выбираемые в GEF?
-
11-10-2019 - |
Вопрос
Я реализовал добавление портов в качестве детей к прямоугольной фигуре/редактированию/модели, используя логический пример в качестве ссылки. Фигуры порта отображаются, как и ожидалось, и отладка показывает, что редакторы и модели создаются и добавляются к родителям, но дети не выбираются.
В редактировании для детей я переопределяю isselectable (), чтобы вернуть True.
У родителя я попытался переопределить CreateChildEditPolicy (), чтобы вернуть нерезидент, чтобы получить рекомендацию о том, чтобы сделать детей не выбираемыми здесь, но, кажется, ничего не делает. Если я устанавливаю non -resizeableeditpolicy как selection_feedback_role в редактировании ребенка, он изначально выбирается при создании, но затем не может быть выбран позже.
Кроме того, когда фигура ребенка нажимается, родитель также не выбран - это мертвое место, где щелчок не меняет выбор.
Я что -то упускает, чтобы сделать его выборочным, или это, вероятно, что -то еще вмешивается?
Решение
Вы можете попробовать от Debugger, чтобы установить точку останова зрителям GetEditPartat (точка) и шаг оттуда, куда он идет. Это должно быть вызвано, когда вы нажимаете на ребенка.
Может случиться так, что просто нет никаких отзывов о выборе, поэтому вы также можете попытаться вывести evelivery.getSelectedEditParts (), чтобы проверить, что на самом деле есть выбор, но отзывы отсутствуют.
Другие советы
Я сталкиваюсь с той же проблемой и исправляю ее на пути: попробуйте установить подходящую политику в редактировании.
@Override
protected void createEditPolicies() {
installEditPolicy(EditPolicy.LAYOUT_ROLE, yourEditPolicy());
}