Разное представление для суперкласса и подкласса

Я новичок в создании редакторов с помощью Sirius, и у меня есть следующая модель EMF:

Я хочу создать редактор Sirius для данной метамодели с различными представлениями для Superclass A а также Subclass B,

Оба класса A а также B может быть создан и Class B имеет дополнительные атрибуты и ссылки. В представлении для Subclass BЯ хочу показать только ограниченное количество атрибутов из Superclass A и несколько дополнительных атрибутов из Subclass B,

Идея состоит в том, чтобы теперь иметь разные контейнеры, и в зависимости от того, какой это класс, я хочу показать соответствующий контейнер. До сих пор, когда у меня есть два контейнера, определенные в редакторе Sirius, по одному для каждого класса, и я создаю экземпляр Subclass B Теперь я получаю два контейнера в представлении, один с представлением, предназначенным для Superclass A и один с представлением, предназначенным для Subclass B,

Можно ли как-нибудь сказать Сириусу, чтобы он показывал только контейнер соответствующего класса?

1 ответ

Решение

Итак, у вас есть два разных элемента Diagram для A и B в вашем файле.odesgin?

Вы можете ограничить список элементов, к которым должно применяться графическое представление. Это можно сделать с помощью "выражения семантических кандидатов" в вашем элементе диаграммы. Вы можете легко использовать Java-сервисы для фильтрации вашего дерева моделей и возврата Collection<EObject> со всеми соответствующими элементами, которые вы хотите, чтобы они были представлены графически (посмотрите на ссылку, это объяснено отлично).

Если элемент Diagram должен применяться только к определенной функции родительского объекта модели, взгляните на feature: вариант. Введите feature: в поле "Выражение семантических кандидатов" и нажмите Ctrl + пробел, вы должны увидеть список со всеми возможными функциями для объекта EObject, который вы определили как родительский объект EObject для этого элемента Diagram.

(Под "элементом диаграммы" я всегда ссылаюсь на элемент "Контейнер" / "Узел", определенный в точке зрения.odesign)

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