| /******************************************************************************* |
| * Copyright (c) 2000, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.ui; |
| |
| /** |
| * An editor is a visual component within a workbench page. It is |
| * typically used to edit or browse a document or input object. The input |
| * is identified using an <code>IEditorInput</code>. Modifications made |
| * in an editor part follow an open-save-close lifecycle model (in contrast |
| * to a view part, where modifications are saved to the workbench |
| * immediately). |
| * <p> |
| * An editor is document or input-centric. Each editor has an input, and only |
| * one editor can exist for each editor input within a page. This policy has |
| * been designed to simplify part management. |
| * </p><p> |
| * An editor should be used in place of a view whenever more than one instance |
| * of a document type can exist. |
| * </p><p> |
| * This interface may be implemented directly. For convenience, a base |
| * implementation is defined in <code>EditorPart</code>. |
| * </p> |
| * <p> |
| * An editor part is added to the workbench in two stages: |
| * <ol> |
| * <li>An editor extension is contributed to the workbench registry. This |
| * extension defines the extension id, extension class, and the file |
| * extensions which are supported by the editor.</li> |
| * <li>An editor part based upon the extension is created and added to the |
| * workbench when the user opens a file with one of the supported file |
| * extensions (or some other suitable form of editor input).</li> |
| * </ol> |
| * </p> |
| * <p> |
| * All editor parts implement the <code>IAdaptable</code> interface; extensions |
| * are managed by the platform's adapter manager. |
| * </p> |
| * |
| * @see org.eclipse.ui.IWorkbenchPage#openEditor(IEditorInput, String) |
| * @see org.eclipse.ui.part.EditorPart |
| */ |
| public interface IEditorPart extends IWorkbenchPart, ISaveablePart { |
| |
| /** |
| * The property id for <code>isDirty</code>. |
| */ |
| public static final int PROP_DIRTY = IWorkbenchPartConstants.PROP_DIRTY; |
| |
| /** |
| * The property id for <code>getEditorInput</code>. |
| */ |
| public static final int PROP_INPUT = IWorkbenchPartConstants.PROP_INPUT; |
| |
| /** |
| * Returns the input for this editor. If this value changes the part must |
| * fire a property listener event with <code>PROP_INPUT</code>. |
| * |
| * @return the editor input |
| */ |
| public IEditorInput getEditorInput(); |
| |
| /** |
| * Returns the site for this editor. |
| * This method is equivalent to <code>(IEditorSite) getSite()</code>. |
| * <p> |
| * The site can be <code>null</code> while the editor is being initialized. |
| * After the initialization is complete, this value must be non-<code>null</code> |
| * for the remainder of the editor's life cycle. |
| * </p> |
| * |
| * @return the editor site; this value may be <code>null</code> if the editor |
| * has not yet been initialized |
| */ |
| public IEditorSite getEditorSite(); |
| |
| /** |
| * Initializes this editor with the given editor site and input. |
| * <p> |
| * This method is automatically called shortly after the part is instantiated. |
| * It marks the start of the part's lifecycle. The |
| * {@link IWorkbenchPart#dispose IWorkbenchPart.dispose} method will be called |
| * automically at the end of the lifecycle. Clients must not call this method. |
| * </p><p> |
| * Implementors of this method must examine the editor input object type to |
| * determine if it is understood. If not, the implementor must throw |
| * a <code>PartInitException</code> |
| * </p> |
| * @param site the editor site |
| * @param input the editor input |
| * @exception PartInitException if this editor was not initialized successfully |
| */ |
| public void init(IEditorSite site, IEditorInput input) |
| throws PartInitException; |
| } |