Class CompareEditor
- All Implemented Interfaces:
EventListener
,IAdaptable
,IExecutableExtension
,IPropertyChangeListener
,IEditorPart
,IReusableEditor
,ISaveablePart
,ISaveablesLifecycleListener
,ISaveablesSource
,IWorkbenchPart
,IWorkbenchPart2
,IWorkbenchPart3
,IWorkbenchPartOrientation
-
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
createPartControl
(Composite parent) Creates the SWT controls for this workbench part.void
dispose()
TheWorkbenchPart
implementation of thisIWorkbenchPart
method disposes the title image loaded bysetInitializationData
.void
doSave
(IProgressMonitor progressMonitor) Saves the contents of this part.void
doSaveAs()
Saves the contents of this part to another object.Saveable[]
Returns the saveables currently active in the workbench part.<T> T
getAdapter
(Class<T> key) Returns an object which is an instance of the given class associated with this object.Saveable[]
Returns the saveables presented by the workbench part.void
Handle the given event.void
init
(IEditorSite site, IEditorInput input) Initializes this editor with the given editor site and input.protected void
initializeInBackground
(CompareEditorInput cei, boolean hadPreviousInput) boolean
isDirty()
Returns whether the contents of this part have changed since the last save operation.boolean
Returns whether the "Save As" operation is supported by this part.void
Notification that a property has changed.void
void
setFocus()
Asks this part to take focus within the workbench.void
setInput
(IEditorInput input) Sets the input to this editor.Methods inherited from class org.eclipse.ui.part.EditorPart
checkSite, getEditorInput, getEditorSite, getTitleToolTip, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setInputWithNotify, setPartName
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPartPropertyListener, addPropertyListener, firePartPropertyChanged, firePropertyChange, getConfigurationElement, getContentDescription, getDefaultImage, getOrientation, getPartName, getPartProperties, getPartProperty, getSite, getTitle, getTitleImage, removePartPropertyListener, removePropertyListener, setPartProperty, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
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.IEditorPart
getEditorInput, getEditorSite
Methods inherited from interface org.eclipse.ui.ISaveablePart
isSaveOnCloseNeeded
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener
-
Field Details
-
CONFIRM_SAVE_PROPERTY
- See Also:
-
-
Constructor Details
-
CompareEditor
public CompareEditor()No-argument constructor required for extension points.
-
-
Method Details
-
getAdapter
Description copied from class:WorkbenchPart
Returns an object which is an instance of the given class associated with this object. Returnsnull
if no such object can be found.Clients may implement this method but should generally call
Adapters.adapt(Object, Class, boolean)
rather than invoking it directly. Subclasses may override this method (however, if they do so, they should invoke the method on their superclass to ensure that the Platform's adapter manager is consulted).- Specified by:
getAdapter
in interfaceIAdaptable
- Overrides:
getAdapter
in classWorkbenchPart
- Type Parameters:
T
- the class type- Parameters:
key
- the adapter class to look up- Returns:
- a object of the given class, or
null
if this object does not have an adapter for the given class
-
init
Description copied from interface:IEditorPart
Initializes this editor with the given editor site and input.This method is automatically called shortly after the part is instantiated. 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 interfaceIEditorPart
- Specified by:
init
in classEditorPart
- Parameters:
site
- the editor siteinput
- the editor input- Throws:
PartInitException
- if this editor was not initialized successfully
-
setInput
Description copied from class:EditorPart
Sets the input to this editor. This method simply updates the internal member variable.Unlike most of the other set methods on this class, this method does not fire a property change. Clients that call this method from a subclass must ensure that they fire an IWorkbenchPartConstants.PROP_INPUT property change after calling this method but before leaving whatever public method they are in. Clients that expose this method as public API must fire the property change within their implementation of setInput.
Note that firing a property change may cause listeners to immediately reach back and call methods on this editor. Care should be taken not to fire the property change until the editor has fully updated its internal state to reflect the new input.
- Specified by:
setInput
in interfaceIReusableEditor
- Overrides:
setInput
in classEditorPart
- Parameters:
input
- the editor input- See Also:
-
refreshActionBarsContributor
public void refreshActionBarsContributor() -
initializeInBackground
-
getActionBars
-
createPartControl
Description copied from interface:IWorkbenchPart
Creates the SWT controls for this workbench part.Clients should not call this method (the workbench calls this method when it needs to, which may be never).
For implementors this is a multi-step process:
- Create one or more controls within the parent.
- Set the parent layout as needed.
- Register any global actions with the site's
IActionBars
. - Register any context menus with the site.
- Register a selection provider with the site, to make it available to the
workbench's
ISelectionService
(optional).
- Specified by:
createPartControl
in interfaceIWorkbenchPart
- Specified by:
createPartControl
in classWorkbenchPart
- Parameters:
parent
- the parent control
-
dispose
public void dispose()Description copied from class:WorkbenchPart
TheWorkbenchPart
implementation of thisIWorkbenchPart
method disposes the title image loaded bysetInitializationData
. Subclasses may extend.- Specified by:
dispose
in interfaceIWorkbenchPart
- Overrides:
dispose
in classWorkbenchPart
-
setFocus
public void setFocus()Description copied from interface:IWorkbenchPart
Asks this part to take focus within the workbench. Parts must assign focus to one of the controls contained in the part's parent composite.Clients should not call this method (the workbench calls this method at appropriate times). To have the workbench activate a part, use
IWorkbenchPage.activate(IWorkbenchPart) instead
.- Specified by:
setFocus
in interfaceIWorkbenchPart
- Specified by:
setFocus
in classWorkbenchPart
-
isSaveAsAllowed
public boolean isSaveAsAllowed()Description copied from interface:ISaveablePart
Returns whether the "Save As" operation is supported by this part.- Specified by:
isSaveAsAllowed
in interfaceISaveablePart
- Specified by:
isSaveAsAllowed
in classEditorPart
- Returns:
true
if "Save As" is supported, andfalse
if not supported
-
doSaveAs
public void doSaveAs()Description copied from interface:ISaveablePart
Saves the contents of this part 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
IProgressMonitor
should be used to indicate progress.If the save is successful, the part fires a property changed event reflecting the new dirty state (
PROP_DIRTY
property).- Specified by:
doSaveAs
in interfaceISaveablePart
- Specified by:
doSaveAs
in classEditorPart
-
doSave
Description copied from interface:ISaveablePart
Saves the contents of this part.If the save is successful, the part should fire a property changed event reflecting the new dirty state (
PROP_DIRTY
property).If the save is cancelled through user action, or for any other reason, the part should invoke
setCancelled
on theIProgressMonitor
to inform the caller.This method is long-running; progress and cancellation are provided by the given progress monitor.
- Specified by:
doSave
in interfaceISaveablePart
- Specified by:
doSave
in classEditorPart
- Parameters:
progressMonitor
- the progress monitor
-
isDirty
public boolean isDirty()Description copied from interface:ISaveablePart
Returns whether the contents of this part have changed since the last save operation. If this value changes the part must fire a property listener event withPROP_DIRTY
.Note: this method is called often on a part open or part activation switch, for example by actions to determine their enabled status.
- Specified by:
isDirty
in interfaceISaveablePart
- Specified by:
isDirty
in classEditorPart
- Returns:
true
if the contents have been modified and need saving, andfalse
if they have not changed since the last save
-
propertyChange
Description copied from interface:IPropertyChangeListener
Notification that a property has changed.This method gets called when the observed object fires a property change event.
- Specified by:
propertyChange
in interfaceIPropertyChangeListener
- Parameters:
event
- the property change event object describing which property changed and how
-
getSaveables
Description copied from interface:ISaveablesSource
Returns the saveables presented by the workbench part. If the return value of this method changes during the lifetime of this part (i.e. after initialization and control creation but before disposal) the part must notify an implicit listener usingISaveablesLifecycleListener.handleLifecycleEvent(SaveablesLifecycleEvent)
.Additions of saveables to the list of saveables of this part are announced using an event of type
SaveablesLifecycleEvent.POST_OPEN
. Removals are announced in a two-stage process, first using an event of typeSaveablesLifecycleEvent.PRE_CLOSE
followed by an event of typeSaveablesLifecycleEvent.POST_CLOSE
. Since firing thePRE_CLOSE
event may trigger prompts to save dirty saveables, the cancellation status of the event must be checked by the part after the notification. When removing only non-dirty saveables,POST_CLOSE
notification is sufficient.The listener is obtained from the part site by calling
partSite.getService(ISaveablesLifecycleListener.class)
.The part must not notify from its initialization methods (e.g.
init
orcreatePartControl
), or from its dispose method. Parts that implementIReusableEditor
must notify when their input is changed throughIReusableEditor.setInput(IEditorInput)
.- Specified by:
getSaveables
in interfaceISaveablesSource
- Returns:
- the saveables presented by the workbench part
- See Also:
-
getActiveSaveables
Description copied from interface:ISaveablesSource
Returns the saveables currently active in the workbench part.Certain workbench actions, such as Save, target only the active saveables in the active part. For example, the active saveables could be determined based on the current selection in the part.
- Specified by:
getActiveSaveables
in interfaceISaveablesSource
- Returns:
- the saveables currently active in the workbench part
-
handleLifecycleEvent
Description copied from interface:ISaveablesLifecycleListener
Handle the given event. This method must be called on the UI thread.- Specified by:
handleLifecycleEvent
in interfaceISaveablesLifecycleListener
- Parameters:
event
- the event
-