У меня есть EMF-модель и сгенерированный редактор. В модели/редакторе можно подключить элемент «Единица» (U) с «Спецификацией» (S). Теперь я хочу иметь специальный CSS-стиль для S, если хотя бы один U удовлетворяет S. Но (насколько мне известно) нет способа выполнить это (например, с селекторами) в CSS-стиле для Папирус.EMF/GMF/Papyrus - Set excplicit ElementImpl - Свойство вне кода
По этой причине я добавил дополнительное свойство для S, называемое «Mapped» (должно быть истинным, когда хотя бы одно U удовлетворяет S, иначе оно ложно). Затем я попытался установить "сопоставленные" -property из кода, когда были добавлены один/более соединения (в handleNotification - метод):
notifier.setMapped(true);
с excception:
IllegalstateException: Cannot modify resource set without a write transaction
г. Вторым решение привело к еще одно исключение, но с тем же результатом семантического:
ed.getCommandStack().execute(SetCommand.create(ed, notifier,
xyzPackage.Literals.SPECIFICATION__MAPPED, true));
за исключением:
java.lang.IllegalStateException: Cannot activate read/write
transaction in read-only transaction context
Кто-нибудь знает, как справиться с этими Исключениями или иметь хорошее обходное решение? Основная цель состоит в том, что CSS-файл распознает изменение «Mapped» -Property.
спасибо :)
«Тогда я попытался установить„Mapped“-свойство из кода». Где находится код? Как вы получаете/создаете транзакционный домен редактирования? – ASBH
В спецификации SpecificationEditPart.handleNotification (событие уведомления) я добавил код, указанный в моем сообщении ... TransactionalEditingDomain ed = (TransactionalEditingDomain) this.getEditingDomain; (где этот экземпляр SpecificationEditPart) – Shounbourgh