Bug 493164 - NPE in ProjectReferencePage

Change-Id: I02a425db83af61ffe8d34e3e75279795de7b154c
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
index 2c873f3..4820bf7 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ProjectReferencePage.java
@@ -19,6 +19,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.runtime.Adapters;
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -167,7 +168,12 @@
      * Initializes a ProjectReferencePage.
      */
     private void initialize() {
-		project = (IProject) Adapters.adapt(getElement(), IResource.class);
+		project = Adapters.adapt(getElement(), IProject.class);
+		if (project == null) {
+			IResource resource = Adapters.adapt(getElement(), IResource.class);
+			Assert.isNotNull(resource, "unable to adapt element to a project"); //$NON-NLS-1$
+			project = resource.getProject();
+		}
         noDefaultAndApplyButton();
         setDescription(NLS.bind(IDEWorkbenchMessages.ProjectReferencesPage_label, project.getName()));
     }