source: default/v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/handler/GenerationHandler.java @ 69

Last change on this file since 69 was 69, checked in by hkaulbersch, 10 years ago

added the functions to generate a .pdf from .fo.
Still Not accessible.

  • Property svn:mime-type set to text/plain
File size: 2.9 KB
Line 
1package de.ugoe.cs.swe.bnftools.ui.handler;
2
3import org.eclipse.core.commands.AbstractHandler;
4import org.eclipse.core.commands.ExecutionEvent;
5import org.eclipse.core.commands.ExecutionException;
6import org.eclipse.core.commands.IHandler;
7import org.eclipse.core.resources.IFile;
8import org.eclipse.core.resources.IFolder;
9import org.eclipse.core.resources.IProject;
10import org.eclipse.core.runtime.CoreException;
11import org.eclipse.core.runtime.NullProgressMonitor;
12import org.eclipse.emf.common.util.URI;
13import org.eclipse.emf.ecore.resource.Resource;
14import org.eclipse.emf.ecore.resource.ResourceSet;
15import org.eclipse.jface.viewers.ISelection;
16import org.eclipse.jface.viewers.IStructuredSelection;
17import org.eclipse.ui.handlers.HandlerUtil;
18import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess;
19import org.eclipse.xtext.generator.IGenerator;
20import org.eclipse.xtext.resource.IResourceDescriptions;
21import org.eclipse.xtext.ui.resource.IResourceSetProvider;
22
23import com.google.inject.Inject;
24import com.google.inject.Provider;
25
26public class GenerationHandler extends AbstractHandler implements IHandler {
27   
28    @Inject
29    private IGenerator generator;
30 
31    @Inject
32    private Provider<EclipseResourceFileSystemAccess> fileAccessProvider;
33     
34    @Inject
35    IResourceDescriptions resourceDescriptions;
36     
37    @Inject
38    IResourceSetProvider resourceSetProvider;
39     
40    @Override
41    public Object execute(ExecutionEvent event) throws ExecutionException {
42         
43        ISelection selection = HandlerUtil.getCurrentSelection(event);
44        if (selection instanceof IStructuredSelection) {
45            IStructuredSelection structuredSelection = (IStructuredSelection) selection;
46            Object firstElement = structuredSelection.getFirstElement();
47            if (firstElement instanceof IFile) {
48                IFile file = (IFile) firstElement;
49                IProject project = file.getProject();
50                IFolder srcGenFolder = project.getFolder("src-gen");
51                if (!srcGenFolder.exists()) {
52                    try {
53                        srcGenFolder.create(true, true,
54                                new NullProgressMonitor());
55                    } catch (CoreException e) {
56                        return null;
57                    }
58                }
59 
60                final EclipseResourceFileSystemAccess fsa = fileAccessProvider.get();
61                fsa.setOutputPath(srcGenFolder.getFullPath().toString());
62                 
63                URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
64                ResourceSet rs = resourceSetProvider.get(project);
65                Resource r = rs.getResource(uri, true);
66                generator.doGenerate(r, fsa);
67                 
68               
69            }
70        }
71        return null;
72    }
73 
74    @Override
75    public boolean isEnabled() {
76        return true;
77    }
78 
79}
Note: See TracBrowser for help on using the repository browser.