package bndtools.jareditor.internal; import java.net.URI; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.IURIEditorInput; import org.eclipse.ui.PlatformUI; public class URIHelper { static URI retrieveFileURI(final IEditorInput input) { URI uri = null; if (input instanceof IFileEditorInput) { uri = ((IFileEditorInput) input).getFile().getLocationURI(); if (!uri.getScheme().equals("file")) { // we have a file on the local machine and can get the file URI from it uri = ((IFileEditorInput) input).getFile().getLocation().toFile().toURI(); } } else if (input instanceof IURIEditorInput) { uri = ((IURIEditorInput) input).getURI(); if (!uri.getScheme().equals("file")) { // unrecoverable error java.io.File(URI) is only supporting file protocol Status status = new Status(IStatus.ERROR, PluginConstants.PLUGIN_ID, "Only file uri protocol is supported."); ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Error", null, status); } } return uri; } }