package org.xmind.ui.internal.editor; import java.io.File; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IMemento; import org.eclipse.ui.IPersistableElement; /** * * @author Frank Shaka */ public class FileEditorInput implements IEditorInput, IPersistableElement { private File file; /** * @param file */ public FileEditorInput(File file) { super(); this.file = file; } public boolean exists() { return file.exists() && file.canRead(); } public ImageDescriptor getImageDescriptor() { return null; } public String getName() { return file.getName(); } public IPersistableElement getPersistable() { return this; } public String getToolTipText() { return file.getAbsolutePath(); } public Object getAdapter(Class adapter) { if (adapter == File.class) return file; if (adapter == IPersistableElement.class) return this; return Platform.getAdapterManager().getAdapter(this, adapter); } public String getFactoryId() { return FileEditorInputFactory.getFactoryId(); } public void saveState(IMemento memento) { FileEditorInputFactory.saveState(memento, this); } public File getFile() { return file; } @Override public boolean equals(Object obj) { if (obj == this) return true; if (obj == null || !(obj instanceof FileEditorInput)) return false; FileEditorInput that = (FileEditorInput) obj; return this.file.equals(that.file); } }