Loading plugins/org.etsi.mts.tdl.ttcn3.ui/src/org/etsi/mts/tdl/ttcn3/ui/handlers/TransformationHandler.java +37 −17 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import org.eclipse.emf.common.util.URI; 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.util.EcoreUtil; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IEditorInput; Loading @@ -22,6 +23,7 @@ import org.etsi.mts.tdl.ttcn3.Transform; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Provider; /** * Our sample handler extends AbstractHandler, an IHandler base class. Loading @@ -29,8 +31,12 @@ import com.google.inject.Injector; * @see org.eclipse.core.commands.AbstractHandler */ public class TransformationHandler extends AbstractHandler { @Inject IResourceSetProvider resourceSetProvider; @Inject Injector injector; @Inject Provider<ResourceSet> rsp; @Inject Provider<XtextResourceSet> xrsp; @Inject IResourceSetProvider resourceSetProvider; private IWorkbenchWindow window; Loading @@ -48,34 +54,48 @@ public class TransformationHandler extends AbstractHandler { ISelection selection = HandlerUtil.getCurrentSelection(event); IEditorInput input = HandlerUtil.getActiveEditorInput(event); IFile file = null; IProject project = null; if (input != null && input instanceof FileEditorInput) { file = ((FileEditorInput) input).getFile(); project = file.getProject(); } else if (selection !=null && selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; Object firstElement = structuredSelection.getFirstElement(); if (firstElement instanceof IFile) { file = (IFile) firstElement; project = file.getProject(); } } try { if (file !=null && (file.getName().endsWith(".tdl") || file.getName().endsWith(".tdlan2"))) { if (file !=null) { injector = Guice.createInjector(); URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); ResourceSet rs = new ResourceSetImpl(); XtextResourceSet rs = injector.getInstance(XtextResourceSet.class); Resource r = rs.getResource(uri, true); if (file.getName().endsWith(".tdl") || file.getName().endsWith(".tdlan2")) { Transform transformer = new Transform(); URI interimURI = URI.createURI(uri.toString()+".ttcn3m"); URI interimURI = URI.createURI(uri.toString()+"-generated.ttcn3m"); Resource ir = rs.createResource(interimURI); transformer.transform(r, ir); URI targetURI = URI.createPlatformResourceURI(file.getFullPath().toString()+".ttcn3", true); Injector injector = Guice.createInjector(new de.ugoe.cs.swe.TTCN3RuntimeModule()); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); Resource tr = resourceSet.createResource(targetURI); //This is important otherwise ghost references may occur ir.unload(); URI targetURI = URI.createURI(uri.toString()+"-generated.ttcn3"); // URI targetURI = URI.createPlatformResourceURI(file.getFullPath().toString()+".ttcn3", true); // Injector injector = Guice.createInjector(new de.ugoe.cs.swe.TTCN3RuntimeModule()); // XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); // Resource tr = resourceSet.createResource(targetURI); Resource tr = rs.createResource(targetURI); transformer.transform(r, tr); } else if (file.getName().endsWith(".ttcn3")) { URI targetURI = URI.createURI(uri.toString()+".ttcn3m"); Resource tr = rs.createResource(targetURI); tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); tr.save(null); } else if (file.getName().endsWith(".ttcn3m")) { URI targetURI = URI.createURI(uri.toString()+".ttcn3"); Resource tr = rs.createResource(targetURI); tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); tr.save(null); } } } catch (Exception e) { // TODO Auto-generated catch block Loading Loading
plugins/org.etsi.mts.tdl.ttcn3.ui/src/org/etsi/mts/tdl/ttcn3/ui/handlers/TransformationHandler.java +37 −17 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import org.eclipse.emf.common.util.URI; 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.util.EcoreUtil; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IEditorInput; Loading @@ -22,6 +23,7 @@ import org.etsi.mts.tdl.ttcn3.Transform; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Provider; /** * Our sample handler extends AbstractHandler, an IHandler base class. Loading @@ -29,8 +31,12 @@ import com.google.inject.Injector; * @see org.eclipse.core.commands.AbstractHandler */ public class TransformationHandler extends AbstractHandler { @Inject IResourceSetProvider resourceSetProvider; @Inject Injector injector; @Inject Provider<ResourceSet> rsp; @Inject Provider<XtextResourceSet> xrsp; @Inject IResourceSetProvider resourceSetProvider; private IWorkbenchWindow window; Loading @@ -48,34 +54,48 @@ public class TransformationHandler extends AbstractHandler { ISelection selection = HandlerUtil.getCurrentSelection(event); IEditorInput input = HandlerUtil.getActiveEditorInput(event); IFile file = null; IProject project = null; if (input != null && input instanceof FileEditorInput) { file = ((FileEditorInput) input).getFile(); project = file.getProject(); } else if (selection !=null && selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; Object firstElement = structuredSelection.getFirstElement(); if (firstElement instanceof IFile) { file = (IFile) firstElement; project = file.getProject(); } } try { if (file !=null && (file.getName().endsWith(".tdl") || file.getName().endsWith(".tdlan2"))) { if (file !=null) { injector = Guice.createInjector(); URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); ResourceSet rs = new ResourceSetImpl(); XtextResourceSet rs = injector.getInstance(XtextResourceSet.class); Resource r = rs.getResource(uri, true); if (file.getName().endsWith(".tdl") || file.getName().endsWith(".tdlan2")) { Transform transformer = new Transform(); URI interimURI = URI.createURI(uri.toString()+".ttcn3m"); URI interimURI = URI.createURI(uri.toString()+"-generated.ttcn3m"); Resource ir = rs.createResource(interimURI); transformer.transform(r, ir); URI targetURI = URI.createPlatformResourceURI(file.getFullPath().toString()+".ttcn3", true); Injector injector = Guice.createInjector(new de.ugoe.cs.swe.TTCN3RuntimeModule()); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); Resource tr = resourceSet.createResource(targetURI); //This is important otherwise ghost references may occur ir.unload(); URI targetURI = URI.createURI(uri.toString()+"-generated.ttcn3"); // URI targetURI = URI.createPlatformResourceURI(file.getFullPath().toString()+".ttcn3", true); // Injector injector = Guice.createInjector(new de.ugoe.cs.swe.TTCN3RuntimeModule()); // XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); // Resource tr = resourceSet.createResource(targetURI); Resource tr = rs.createResource(targetURI); transformer.transform(r, tr); } else if (file.getName().endsWith(".ttcn3")) { URI targetURI = URI.createURI(uri.toString()+".ttcn3m"); Resource tr = rs.createResource(targetURI); tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); tr.save(null); } else if (file.getName().endsWith(".ttcn3m")) { URI targetURI = URI.createURI(uri.toString()+".ttcn3"); Resource tr = rs.createResource(targetURI); tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); tr.save(null); } } } catch (Exception e) { // TODO Auto-generated catch block Loading