Bug 541019 - NullPointerException in GraphicalComposite.selectionChanged
Change-Id: I1a64c0c5dacd7e2487264452adc7da512e816bc1
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/editor/GraphicalComposite.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/editor/GraphicalComposite.java
index 6f02ed5..80cfebc 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/editor/GraphicalComposite.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/editor/GraphicalComposite.java
@@ -50,7 +50,9 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.ISelectionService;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.actions.ActionFactory;
/**
@@ -386,15 +388,26 @@
return getCommandStack().isDirty();
}
- /**
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
- */
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- // If not the active part, ignore selection changed.
- if (getWorkbenchPart() != null
- && getWorkbenchPart().equals(getWorkbenchPart().getSite().getPage().getActivePart()))
- updateActions(selectionActions);
- }
+ /**
+ * @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart,
+ * ISelection)
+ */
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+ // If not the active part, ignore selection changed.
+ IWorkbenchPart workbenchPart = getWorkbenchPart();
+ if (workbenchPart != null) {
+ IWorkbenchPartSite site = workbenchPart.getSite();
+ if (site != null) {
+ IWorkbenchPage page = site.getPage();
+ if (page != null) {
+ IWorkbenchPart activePart = page.getActivePart();
+ if (workbenchPart.equals(activePart)) {
+ updateActions(selectionActions);
+ }
+ }
+ }
+ }
+ }
/**
* Sets the ActionRegistry for this EditorPart.