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 c58051696b8d8425495a7ee2a2e50969e31958bd..b41a5ebf01c9d02add3da563538fbd602c255299 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 @@ -37,8 +37,11 @@ import org.eclipse.gef.editparts.AbstractGraphicalEditPart; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IPartListener2; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchPartReference; +import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.part.ViewPart; import org.fortiss.tooling.base.annotation.AnnotationEntry; import org.fortiss.tooling.base.annotation.IAnnotationValueService; @@ -60,7 +63,7 @@ import org.fortiss.tooling.kernel.service.IPersistencyService; * @author barner * @author $Author$ * @version $Rev$ - * @ConQAT.Rating GREEN Hash: EE75EE9DA08E49EF36E644324B35D0B0 + * @ConQAT.Rating YELLOW Hash: ABA34824715CBD59797ACBADB1163534 */ public abstract class AnnotationViewPartBase extends ViewPart implements ISelectionListener, IAnnotationViewPart { @@ -302,7 +305,53 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect /** {@inheritDoc} */ @Override public void createPartControl(Composite parent) { - getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(this); + final IWorkbenchPartSite site = getSite(); + site.getWorkbenchWindow().getSelectionService().addSelectionListener(this); + site.getPage().addPartListener(new IPartListener2() { + @Override + public void partActivated(IWorkbenchPartReference partRef) { + // Nothing to do + } + + @Override + public void partBroughtToTop(IWorkbenchPartReference partRef) { + // Nothing to do + } + + @Override + public void partClosed(IWorkbenchPartReference partRef) { + // Nothing to do + } + + @Override + public void partDeactivated(IWorkbenchPartReference partRef) { + // Nothing to do + } + + @Override + public void partOpened(IWorkbenchPartReference partRef) { + // Nothing to do + } + + @Override + public void partHidden(IWorkbenchPartReference partRef) { + if(partRef.getId().equals(IAnnotationViewPart.ANNOTATION_VIEW_ID)) { + setUpdateEnabled(false); + } + } + + @Override + public void partVisible(IWorkbenchPartReference partRef) { + if(partRef.getId().equals(IAnnotationViewPart.ANNOTATION_VIEW_ID)) { + setUpdateEnabled(true); + } + } + + @Override + public void partInputChanged(IWorkbenchPartReference partRef) { + // Nothing to do + } + }); } /** {@inheritDoc} */