Вопрос

Мы работаем над созданием инструмента моделирования на основе структуры и инструментов GMF.У нас есть требование разрешить пользователям добавлять представления (рисунки) во время выполнения и использовать их в своих диаграммах.Мы будем использовать файлы SVG для представления фигур.

Какова правильная структура EditParts и других классов, связанных с GEF, в таком случае?Мы думали о реализации одного класса GEF EditPart, который создавал бы соответствующую фигуру на основе параметра (путь к файлу SVG), присутствующего в модели.Пока что это, похоже, не работает.

ДОЛЖЕН быть кто-то, кто уже делал что-то подобное раньше.Поиск в Google и форумы Eclipse пока не помогли...

Это было полезно?

Решение

Что ж, мы нашли (частичное) решение.У нас есть один элемент, и в зависимости от параметра мы создаем внутри него дочернюю фигуру, которая использует SVG-файл (на основе параметра).

В конструкторе рисунка вызывается следующий тестовый код:

ScalableImageFigure svg;URL-адрес;if (type == 1) {url = architecturestudiodiodiogrameditorplugin.getInstance (). getBundle (). getEntry ("Icons" + ipath.separator + "Shadow-box.svg");} else {url = architecturestudiodiodiogrameditorplugin.getinstance (). getbundle (). getEntry ("icons" + ipath.separator + "star.svg");} svg = new ScalableImagefigure (venderedImageFactory.getInstance (url), true, true, true);

  this.add(svg);

Теперь нам нужно выяснить, как иметь в палитре несколько элементов.

Другие советы

Правильный способ — иметь сопоставление один к одному между фигурой и частью редактирования.Также задачу рисования следует оставить фигуре.Логика того, как изображение должно быть нарисовано, должна быть внутри рисунка, а не в части редактирования.

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top