[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[stp-commits] r3331 - org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.sca/src/org/eclipse/stp/sca/diagram/sca/dnd

Author: sdrapeau
Date: 2009-09-16 06:44:32 -0400 (Wed, 16 Sep 2009)
New Revision: 3331

Modified:
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.sca/src/org/eclipse/stp/sca/diagram/sca/dnd/AbstractCompositeFileDD.java
Log:
Composite files enclosed in a jar file are now copied in directory .metadata.
Used by the D'n'D action to introspect the composite file.

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.sca/src/org/eclipse/stp/sca/diagram/sca/dnd/AbstractCompositeFileDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.sca/src/org/eclipse/stp/sca/diagram/sca/dnd/AbstractCompositeFileDD.java	2009-09-15 17:08:21 UTC (rev 3330)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.sca/src/org/eclipse/stp/sca/diagram/sca/dnd/AbstractCompositeFileDD.java	2009-09-16 10:44:32 UTC (rev 3331)
@@ -16,8 +16,13 @@
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.gef.Request;
 import org.eclipse.gef.commands.CompoundCommand;
 import org.eclipse.gmf.runtime.common.core.command.CommandResult;
@@ -33,8 +38,6 @@
 import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
 import org.eclipse.gmf.runtime.notation.Node;
 import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.internal.core.JarEntryFile;
 import org.eclipse.stp.sca.Component;
 import org.eclipse.stp.sca.Composite;
@@ -42,6 +45,7 @@
 import org.eclipse.stp.sca.diagram.dnd.AbstractFileDD;
 import org.eclipse.stp.sca.introspection.CompositeImplementationResolver;
 import org.eclipse.stp.sca.util.ScaCompositeUtils;
+import org.osgi.framework.Bundle;
 
 /**
  * @author Jamil Shaikh - RIM
@@ -57,7 +61,7 @@
 			if (transfer != null) {
 				IResource file = getCompositeFile(transfer);
 				if (file != null) {
-					if (file.getFileExtension().equals("composite")) {
+					if (file.getFileExtension().equals("composite")) { //$NON-NLS-1$
 						cmd = getCommand(host, editPart, request, file);
 					}
 				}
@@ -72,12 +76,20 @@
 			file = (IResource) transfer;
 		} else if (transfer instanceof JarEntryFile) {
 			JarEntryFile jarEntry = (JarEntryFile) transfer;
-			IPackageFragmentRoot jarRoot = jarEntry.getPackageFragmentRoot();
-			IJavaProject jp = jarRoot.getJavaProject();
-			String projectPath = jp.getProject().getLocation().toString();
-			java.io.File tmpFile = new java.io.File(new java.io.File(
-					projectPath).toString()
-					+ "/" + jarEntry.getName());
+
+			Bundle bundle = Platform
+					.getBundle("org.eclipse.stp.sca.introspection"); //$NON-NLS-1$
+			if (bundle == null) {
+				String msg = "Bundle org.eclipse.stp.sca.introspection not found"; //$NON-NLS-1$
+				ResourcesPlugin.getPlugin().getLog().log(
+						new Status(IStatus.ERROR,
+								"org.eclipse.stp.sca.diagram.sca", msg)); //$NON-NLS-1$
+				return null;
+			}
+			IPath stateLocation = Platform.getStateLocation(bundle);
+			java.io.File tmpFile = new java.io.File(stateLocation.toString()
+					+ "/" + jarEntry.getName()); //$NON-NLS-1$
+
 			file = JDTUtils.copyFileEnclosedInJar(jarEntry, tmpFile);
 		}
 		return file;