package org.rascalmpl.eclipse.values; import java.io.IOException; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.editors.text.TextEditor; import org.rascalmpl.eclipse.views.values.ValueEditorInput; import org.rascalmpl.uri.ProjectURIResolver; import org.rascalmpl.uri.URIEditorInput; import org.rascalmpl.uri.URIStorage; import io.usethesource.vallang.ISourceLocation; public class ValueEditor extends TextEditor { @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { try { if (input instanceof URIEditorInput) { super.init(site, new ValueEditorInput((URIStorage) ((URIEditorInput) input).getStorage(), true, 2)); } else { IResource tmp = input.getAdapter(IResource.class); if (tmp != null) { ISourceLocation uri = ProjectURIResolver.constructProjectURI(tmp.getFullPath()); super.init(site, new ValueEditorInput(uri, true, 2)); } throw new IOException("Value editor can not open " + input); } } catch (IOException | CoreException e) { throw new PartInitException("could not initialize editor", e); } } }