diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java index 1f13380637dc17b60b8b810826e64844f1b13781..4e42219f5239d23d7262888cf0b7f3e63292d428 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java @@ -51,7 +51,8 @@ import org.fortiss.tooling.kernel.utils.EcoreUtils; * @version $Rev$ * @ConQAT.Rating YELLOW Hash: 40FF672DC52B17062D1716341177D76A */ -public abstract class AnnotationViewPartBase extends ViewPart implements ISelectionListener, IAnnotationViewPart { +public abstract class AnnotationViewPartBase extends ViewPart implements ISelectionListener, + IAnnotationViewPart { /** the currently selected object */ private IModelElement currentlySelectedObject; @@ -70,9 +71,12 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect @Override public void notifyChanged(Notification notification) { if((notification.getEventType() == Notification.ADD) || - (notification.getEventType() == Notification.REMOVE)) { - if(notification.getNewValue() instanceof IModelElement) { - update((IModelElement)notification.getNewValue()); + (notification.getEventType() == Notification.REMOVE || (notification + .getEventType() == Notification.SET))) { + + Object notifier = notification.getNotifier(); + if(notifier instanceof IModelElement) { + update((IModelElement)notifier); } } } diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/CreateAnnotationInstanceColumn.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/CreateAnnotationInstanceColumn.java index 24678fe1ffe4c03b963ce20c6658d143d6bb36f7..c5a40ed01643477e386a3c603945b640f6f75be2 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/CreateAnnotationInstanceColumn.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/CreateAnnotationInstanceColumn.java @@ -17,6 +17,8 @@ $Id$ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.base.ui.annotation.view; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.impl.NotificationImpl; import org.eclipse.emf.common.util.EMap; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; @@ -225,6 +227,16 @@ public class CreateAnnotationInstanceColumn extends ViewerColumn { ((EMap<String, ?>)columnSpecAnnEntry .getSpecificationValue(columnSpec.getClass())).put( instanceKey, null); + + // Inform others, e.g. the respective annotation view that a new + // instance of this annotation has been created. + columnSpecAnnEntry.getModelElement().eNotify( + new NotificationImpl(Notification.SET, null, null) { + @Override + public Object getNotifier() { + return columnSpecAnnEntry.getModelElement(); + } + }); } catch(IllegalArgumentException e) { // e.printStackTrace(); MessageDialog