Фигуры не отображаются в Eclipse GEF viewer

Я создаю ScrollingGraphicalViewer, чтобы показать мои фигуры, но никакие фигуры не отображаются. Я отладил исходный код и, кажется, все объекты (рисунки, элементы редактирования, модели) созданы, без исключений. Почему цифры не отображаются?

Поскольку код является ларедом и распространяет множество файлов Java, я кратко описал то, что сделал.

  1. создание модельных объектов. В моей модели есть два вида элементов: каталог и файл. Каталог может содержать другие каталоги или файлы.

  2. объекты фигуры. Я создаю два вида рисунков, один для каталога, другой для файла. фигура каталога может иметь вложенные фигуры для вложенных каталогов и файлов.

  3. редактировать объекты. для каждого вида элементов модели, т. е. каталога и файла, установить связь между моделью и рисунками.

  4. фабричный объект editpart, для создания каждого объекта editpart.

  5. создайте объект ScrollingGraphicalViewer (средство просмотра). и вызовите следующие методы для просмотра: viewer.createControl(), viewer.setRootEditPart(), viewer.setEditPartFactory и viewer.setContents().

Что-нибудь пропало? Любые подсказки и комментарии будут оценены.

Благодарю.

1 ответ

Переопределение refreshVisuals() в вашем EditParts сделает свое дело. Это правильное место, чтобы реагировать на изменения ограничений в соответствии с вашей моделью. Вы должны будете установить ограничение числа относительно родителя EditPart (и его фигура FreeformLayout), так что для FileEditPart (см. перекрестную публикацию на форуме Eclipse GEF) сделайте что-то вроде следующего в refreshVisuals(),

getParent().setLayoutConstraint(this, figure, layout);

layout здесь должен быть draw2d Rectangle, Вы можете рассчитать это, дав x а также y ценности и getFigure().getPreferredSize().width для layout.widthи dto. для высоты.

Для базового использования GEF - в данном случае это так - я бы посоветовал вам взглянуть на книгу GEF Рубеля и др.

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