Eclipse Platform
2.0

org.eclipse.ui.part
Class EditorPart

java.lang.Object
  |
  +--org.eclipse.ui.part.WorkbenchPart
        |
        +--org.eclipse.ui.part.EditorPart
All Implemented Interfaces:
IAdaptable, IEditorPart, IExecutableExtension, IWorkbenchPart
Direct Known Subclasses:
AbstractTextEditor, MultiEditor, MultiPageEditor, MultiPageEditorPart

public abstract class EditorPart
extends WorkbenchPart
implements IEditorPart

Abstract base implementation of all workbench editors.

This class should be subclassed by clients wishing to define new editors. The name of the subclass should be given as the "class" attribute in a editor extension contributed to the workbench's view extension point (named "org.eclipse.ui.editors"). For example, the plug-in's XML markup might contain:

 <extension point="org.eclipse.ui.editors">
      <editor id="com.example.myplugin.ed"
         name="My Editor"
         icon="./images/cedit.gif"
 		   extensions="foo" 
 		   class="com.example.myplugin.MyFooEditor" 
 		   contributorClass="com.example.myplugin.MyFooEditorContributor" 
      />
 </extension>
 
where com.example.myplugin.MyEditor is the name of the EditorPart subclass.

Subclasses must implement the following methods:

Subclasses may extend or reimplement the following methods as required:


Field Summary
 
Fields inherited from interface org.eclipse.ui.IEditorPart
PROP_DIRTY, PROP_INPUT
 
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
 
Constructor Summary
protected EditorPart()
          Creates a new workbench editor.
 
Method Summary
abstract  void doSave(IProgressMonitor monitor)
          Saves the contents of this editor.
abstract  void doSaveAs()
          Saves the contents of this editor to another object.
 IEditorInput getEditorInput()
          Returns the input for this editor.
 IEditorSite getEditorSite()
          Returns the site for this editor.
 String getTitleToolTip()
          Returns the title tool tip text of this workbench part.
abstract  void gotoMarker(IMarker marker)
          Sets the cursor and selection state for this editor to the passage defined by the given marker.
abstract  void init(IEditorSite site, IEditorInput input)
          Initializes this editor with the given editor site and input.
abstract  boolean isDirty()
          Returns whether the contents of this editor have changed since the last save operation.
abstract  boolean isSaveAsAllowed()
          Returns whether the "save as" operation is supported by this editor.
 boolean isSaveOnCloseNeeded()
          Returns whether the contents of this editor should be saved when the editor is closed.
protected  void setInput(IEditorInput input)
          Sets the input to this editor.
 
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPropertyListener, createPartControl, dispose, firePropertyChange, getAdapter, getConfigurationElement, getDefaultImage, getSite, getTitle, getTitleImage, removePropertyListener, setFocus, setInitializationData, setSite, setTitle, setTitleImage, setTitleToolTip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, createPartControl, dispose, getSite, getTitle, getTitleImage, removePropertyListener, setFocus
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 

Constructor Detail

EditorPart

protected EditorPart()
Creates a new workbench editor.

Method Detail

doSave

public abstract void doSave(IProgressMonitor monitor)
Description copied from interface: IEditorPart
Saves the contents of this editor.

If the save is successful, the editor should fire a property changed event reflecting the new dirty state (PROP_SAVE_NEEDED property).

If the save is cancelled through user action, or for any other reason, the editor should invoke setCancelled on the monitor to inform the caller.

This method is long-running; progress and cancellation are provided by the given progress monitor.

Specified by:
doSave in interface IEditorPart
Parameters:
monitor - the progress monitor

doSaveAs

public abstract void doSaveAs()
Description copied from interface: IEditorPart
Saves the contents of this editor to another object.

Implementors are expected to open a "save as" dialog where the user will be able to select a new name for the contents. After the selection is made, the contents should be saved to that new name. During this operation a ProgressMonitorDialog should be used to indicate progress.

If the save is successful, the editor fires a property changed event reflecting the new dirty state (PROP_SAVE_NEEDED property).

Specified by:
doSaveAs in interface IEditorPart

getEditorInput

public IEditorInput getEditorInput()
Description copied from interface: IEditorPart
Returns the input for this editor. If this value changes the part must fire a property listener event with PROP_INPUT.

Specified by:
getEditorInput in interface IEditorPart
Returns:
the editor input

getEditorSite

public IEditorSite getEditorSite()
Description copied from interface: IEditorPart
Returns the site for this editor. The method is equivalent to (IEditorSite) getSite().

Specified by:
getEditorSite in interface IEditorPart
Returns:
the editor site

getTitleToolTip

public String getTitleToolTip()
Description copied from interface: IWorkbenchPart
Returns the title tool tip text of this workbench part. If this value changes the part must fire a property listener event with PROP_TITLE.

The tool tip text is used to populate the title bar of this part's visual container.

Specified by:
getTitleToolTip in interface IWorkbenchPart
Overrides:
getTitleToolTip in class WorkbenchPart
Returns:
the workbench part title tool tip

gotoMarker

public abstract void gotoMarker(IMarker marker)
Description copied from interface: IEditorPart
Sets the cursor and selection state for this editor to the passage defined by the given marker.

Specified by:
gotoMarker in interface IEditorPart
Parameters:
marker - the marker

init

public abstract void init(IEditorSite site,
                          IEditorInput input)
                   throws PartInitException
Description copied from interface: IEditorPart
Initializes this editor with the given editor site and input.

This method is automatically called shortly after part construction; it marks the start of the part's lifecycle. The IWorkbenchPart.dispose method will be called automically at the end of the lifecycle. Clients must not call this method.

Implementors of this method must examine the editor input object type to determine if it is understood. If not, the implementor must throw a PartInitException

Specified by:
init in interface IEditorPart
Parameters:
site - the editor site
input - the editor input
Throws:
PartInitException - if this editor was not initialized successfully

isDirty

public abstract boolean isDirty()
Description copied from interface: IEditorPart
Returns whether the contents of this editor have changed since the last save operation. If this value changes the part must fire a property listener event with PROP_DIRTY.

Specified by:
isDirty in interface IEditorPart
Returns:
true if the contents have been modified and need saving, and false if they have not changed since the last save

isSaveAsAllowed

public abstract boolean isSaveAsAllowed()
Description copied from interface: IEditorPart
Returns whether the "save as" operation is supported by this editor.

Specified by:
isSaveAsAllowed in interface IEditorPart
Returns:
true if "save as" is supported, and false if "save as" is not supported

isSaveOnCloseNeeded

public boolean isSaveOnCloseNeeded()
Description copied from interface: IEditorPart
Returns whether the contents of this editor should be saved when the editor is closed.

Specified by:
isSaveOnCloseNeeded in interface IEditorPart
Returns:
true if the contents of the editor should be saved on close, and false if the contents are expendable

setInput

protected void setInput(IEditorInput input)
Sets the input to this editor.

Parameters:
input - the editor input

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.