2015-01-23 1 views
0

У меня есть ScrollingGraphicalViewer, содержащий список цифр, назовем их «групповыми фигурами», представляющими некоторые бизнес-объекты с отношениями между ними. Каждая «групповая цифра» может содержать некоторые другие цифры, которые связаны между собой. Есть части редактирования для каждой «фигуры группы».Перетаскивание из gef viewer в редактор

Я хочу, чтобы можно было перетащить любую фигуру из зрителя в другой редактор. Прямо сейчас, зритель имеет прослушиватель перетаскивания, расширяющий класс AbstractTransferDragSourceListener. Внутри слушателя мы получаем выбор зрителя, который является соответствующей EditPart выбранной фигуры группы.

Когда в телезрителе есть много фигур, и появляется вертикальная прокрутка, я не могу определить точную фигуру, которую я перетащил, на основе координат перетаскивания и координат фигуры. Как я могу получить затаскуемую фигуру?

ответ

1

Существует учебник ГЭФ по ДНД. Вот как это делается: https://eclipse.org/articles/Article-GEF-dnd/GEF-dnd.html Можно предположить, что вы перетаскиваете выбранные editparts, я думаю. Также вы должны установить данные передачи для персонала DnDing за пределами зрителя. Данные передачи должны, скорее всего, быть модельным объектом или изображением фигуры. Если вы не выбрали Редактировать, то вам нужно выяснить, что именно вы перетаскиваете из координат местоположения mosule при начале перетаскивания. Использовать просмотрщик

#findObjectAtExcluding(Point location, Collection exclusionSet, Conditional conditional) 

способ найти правую часть под мышью. Из найденной части редактирования вы можете либо получить, либо цифру, чтобы установить соответствующие данные передачи.