Фигуры не отображаются в Eclipse GEF viewer
Я создаю ScrollingGraphicalViewer, чтобы показать мои фигуры, но никакие фигуры не отображаются. Я отладил исходный код и, кажется, все объекты (рисунки, элементы редактирования, модели) созданы, без исключений. Почему цифры не отображаются?
Поскольку код является ларедом и распространяет множество файлов Java, я кратко описал то, что сделал.
создание модельных объектов. В моей модели есть два вида элементов: каталог и файл. Каталог может содержать другие каталоги или файлы.
объекты фигуры. Я создаю два вида рисунков, один для каталога, другой для файла. фигура каталога может иметь вложенные фигуры для вложенных каталогов и файлов.
редактировать объекты. для каждого вида элементов модели, т. е. каталога и файла, установить связь между моделью и рисунками.
фабричный объект editpart, для создания каждого объекта editpart.
создайте объект ScrollingGraphicalViewer (средство просмотра). и вызовите следующие методы для просмотра: viewer.createControl(), viewer.setRootEditPart(), viewer.setEditPartFactory и viewer.setContents().
Что-нибудь пропало? Любые подсказки и комментарии будут оценены.
Благодарю.
1 ответ
Переопределение refreshVisuals()
в вашем EditPart
s сделает свое дело. Это правильное место, чтобы реагировать на изменения ограничений в соответствии с вашей моделью. Вы должны будете установить ограничение числа относительно родителя EditPart
(и его фигура FreeformLayout), так что для FileEditPart
(см. перекрестную публикацию на форуме Eclipse GEF) сделайте что-то вроде следующего в refreshVisuals()
,
getParent().setLayoutConstraint(this, figure, layout);
layout
здесь должен быть draw2d Rectangle
, Вы можете рассчитать это, дав x
а также y
ценности и getFigure().getPreferredSize().width
для layout.width
и dto. для высоты.
Для базового использования GEF - в данном случае это так - я бы посоветовал вам взглянуть на книгу GEF Рубеля и др.