[123278] Fixing virtual resoure classes
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
index 3318330..2fdfb39 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
@@ -1,10 +1,11 @@
 /**
  * <copyright></copyright>
  * 
- * $Id: ComponentResource.java,v 1.3 2005/05/21 17:44:47 cbridgha Exp $
+ * $Id: ComponentResource.java,v 1.3.2.1 2006/01/10 19:16:57 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal;
 
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
@@ -163,5 +164,8 @@
 	 * @generated
 	 */
 	void setResourceType(String value);
+	
+	IProject getOwningProject();
+	void setOwningProject(IProject aProject);
 
 } // ComponentResource
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
index 8aa7232..6b96ae1 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
@@ -2,12 +2,13 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentResourceImpl.java,v 1.2 2005/04/05 03:35:37 cbridgha Exp $
+ * $Id: ComponentResourceImpl.java,v 1.2.2.1 2006/01/10 19:16:57 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
 import java.util.Collection;
 
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -111,6 +112,7 @@
 	 */
 	protected String resourceType = RESOURCE_TYPE_EDEFAULT;
 
+	protected IProject owningProject;
 	protected static final int VIRTUAL = 0;
 	protected static final int PERSISTED = 1;
 	
@@ -419,6 +421,14 @@
 	public void setType(int type) {
 		this.type = type;
 	}
+
+	public IProject getOwningProject() {
+		return owningProject;
+	}
+
+	public void setOwningProject(IProject aProject) {
+		owningProject = aProject;
+	}
 	
 
 } //ComponentResourceImpl
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ResourceTreeNode.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ResourceTreeNode.java
index a292fa8..7f1bcae 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ResourceTreeNode.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ResourceTreeNode.java
@@ -215,6 +215,8 @@
 								// newResource.setComponent(moduleResource.getComponent());
 								newResource.setRuntimePath(runtimeURI);
 								newResource.setSourcePath(srcPath);
+								if (eclipseRes != null)
+									newResource.setOwningProject(eclipseRes.getProject());
 								transientChildResources.put(aPath,newResource);
 								}
 								resultSet.add(newResource);
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/EclipseResourceAdapter.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/EclipseResourceAdapter.java
index 088edc0..9ca6d48 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/EclipseResourceAdapter.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/EclipseResourceAdapter.java
@@ -47,13 +47,17 @@
 	}
 
 	public IResource getEclipseResource() {
+		IProject container = null;
 		if (resource != null || hasSearchFailed)
 			return resource;
 		synchronized (this) {
 			if (resource == null) {
 				ComponentResource moduleResource = (ComponentResource) getTarget();
 				IPath sourcePath = moduleResource.getSourcePath();
-				IProject container = StructureEdit.getContainingProject(moduleResource.getComponent());
+				if (moduleResource.getOwningProject() != null)
+					container = moduleResource.getOwningProject();
+				else
+					container = StructureEdit.getContainingProject(moduleResource.getComponent());
 				if (container != null)
 					resource = container.findMember(sourcePath); 
 				if(resource == null)