Одна EditPart для всех видов модели (в GMF / GEF) - PullRequest
1 голос
/ 03 июня 2009

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

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

Должен быть кто-то, кто уже делал что-то подобное раньше. Google и форумы по Eclipse пока не помогают ...

Ответы [ 2 ]

1 голос
/ 03 июня 2009

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

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

ScalableImageFigure svg; URL URL; if (type == 1) {url = ArchitectureStudioDiagramEditorPlugin.getInstance (). GetBundle (). GetEntry ( "значки" + IPath.SEPARATOR + "shadow-box.svg"); } else {url = ArchitectureStudioDiagramEditorPlugin.getInstance (). GetBundle (). GetEntry ( "значки" + IPath.SEPARATOR + "star.svg"); } svg = new ScalableImageFigure (RenderedImageFactory.getInstance (URL), правда, правда, правда);

  this.add(svg);

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

0 голосов
/ 22 декабря 2009

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

Спасибо

...