From c2485924e9781add057687cbd7ffa419df31b471 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Wed, 19 Dec 2007 12:54:52 +0000 Subject: [213417] Provide action to import resources https://bugs.eclipse.org/bugs/show_bug.cgi?id=213417 --- .../internal/ui/actions/ImportResourceAction.java | 25 ++++++++++++++++++---- plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF | 2 +- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportResourceAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportResourceAction.java index 6fada30de3..ab0a1f4001 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportResourceAction.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportResourceAction.java @@ -4,9 +4,13 @@ import org.eclipse.emf.cdo.CDOTransaction; import org.eclipse.emf.cdo.CDOView; import org.eclipse.emf.common.ui.dialogs.ResourceDialog; +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; @@ -23,6 +27,7 @@ import org.eclipse.ui.IWorkbenchPage; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author Eike Stepper @@ -71,13 +76,25 @@ public class ImportResourceAction extends ViewAction protected void doRun() throws Exception { CDOTransaction transaction = getTransaction(); - Resource source = transaction.getResourceSet().getResource(sourceURI, true); + + // Source ResourceSet + ResourceSet sourceSet = new ResourceSetImpl(); + Map map = sourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap(); + map.put("*", new XMIResourceFactoryImpl()); + sourceSet.setPackageRegistry(transaction.getSession().getPackageRegistry()); + + // Source Resource + Resource source = sourceSet.getResource(sourceURI, true); + List sourceContents = new ArrayList(source.getContents()); + + // Target Resource Resource target = transaction.createResource(targetPath); + EList targetContents = target.getContents(); - List contents = new ArrayList(source.getContents()); - for (EObject root : contents) + // Move contents over + for (EObject root : sourceContents) { - target.getContents().add(root); + targetContents.add(root); } } diff --git a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF index 8386dcf50a..11d89f87c1 100644 --- a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Bundle-Activator: org.eclipse.emf.internal.cdo.bundle.Activator$Implementation Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)", org.eclipse.emf.ecore;bundle-version="[2.3.0,3.0.0)";visibility:=reexport, - org.eclipse.emf.ecore.xmi;bundle-version="[2.3.0,3.0.0)", + org.eclipse.emf.ecore.xmi;bundle-version="[2.3.0,3.0.0)";visibility:=reexport, org.eclipse.emf.cdo.protocol;bundle-version="[0.8.0,0.9.0)";visibility:=reexport Export-Package: org.eclipse.emf.cdo;version="0.8.0", org.eclipse.emf.cdo.analyzer;version="0.8.0", -- cgit v1.2.3