/** * Copyright (c) 20015 by Brainwy Software Ltda. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.shared_ui.editor_input; import java.io.File; import java.net.URI; import org.eclipse.core.resources.IFile; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IPathEditorInput; import org.eclipse.ui.IURIEditorInput; public class EditorInputUtils { /** * @return a file that the passed editor input wraps or null if it can't find out about it. */ public static File getFile(IEditorInput o) { if (o == null) { return null; } IFile file = o.getAdapter(IFile.class); if (file != null) { URI locationURI = file.getLocationURI(); if (locationURI == null) { return null; } return new File(locationURI); } URI uri = o.getAdapter(URI.class); if (uri != null) { return new File(uri); } if (o instanceof PydevFileEditorInput) { PydevFileEditorInput input = (PydevFileEditorInput) o; return input.fFile; } if (o instanceof IPathEditorInput) { IPathEditorInput input = (IPathEditorInput) o; return new File(input.getPath().toOSString()); } try { if (o instanceof IURIEditorInput) { IURIEditorInput iuriEditorInput = (IURIEditorInput) o; return new File(iuriEditorInput.getURI()); } } catch (Throwable e) { //IURIEditorInput not added until eclipse 3.3 } return null; } }