Class CompareEditor

All Implemented Interfaces:
EventListener, IAdaptable, IExecutableExtension, IPropertyChangeListener, IEditorPart, IReusableEditor, ISaveablePart, ISaveablesLifecycleListener, ISaveablesSource, IWorkbenchPart, IWorkbenchPart2, IWorkbenchPart3, IWorkbenchPartOrientation

A CompareEditor takes a ICompareEditorInput as input. Most functionality is delegated to the ICompareEditorInput.
  • Field Details

  • Constructor Details

    • CompareEditor

      public CompareEditor()
      No-argument constructor required for extension points.
  • Method Details

    • getAdapter

      public <T> T getAdapter(Class<T> key)
      Description copied from class: WorkbenchPart
      Returns an object which is an instance of the given class associated with this object. Returns null 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 interface IAdaptable
      Overrides:
      getAdapter in class WorkbenchPart
      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

      public 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 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 interface IEditorPart
      Specified by:
      init in class EditorPart
      Parameters:
      site - the editor site
      input - the editor input
      Throws:
      PartInitException - if this editor was not initialized successfully
    • setInput

      public void setInput(IEditorInput input)
      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 interface IReusableEditor
      Overrides:
      setInput in class EditorPart
      Parameters:
      input - the editor input
      See Also:
    • refreshActionBarsContributor

      public void refreshActionBarsContributor()
    • initializeInBackground

      protected void initializeInBackground(CompareEditorInput cei, boolean hadPreviousInput)
    • getActionBars

      public IActionBars getActionBars()
    • createPartControl

      public void createPartControl(Composite parent)
      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:

      1. Create one or more controls within the parent.
      2. Set the parent layout as needed.
      3. Register any global actions with the site's IActionBars.
      4. Register any context menus with the site.
      5. Register a selection provider with the site, to make it available to the workbench's ISelectionService (optional).
      Specified by:
      createPartControl in interface IWorkbenchPart
      Specified by:
      createPartControl in class WorkbenchPart
      Parameters:
      parent - the parent control
    • dispose

      public void dispose()
      Description copied from class: WorkbenchPart
      The WorkbenchPart implementation of this IWorkbenchPart method disposes the title image loaded by setInitializationData. Subclasses may extend.
      Specified by:
      dispose in interface IWorkbenchPart
      Overrides:
      dispose in class WorkbenchPart
    • 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 interface IWorkbenchPart
      Specified by:
      setFocus in class WorkbenchPart
    • isSaveAsAllowed

      public boolean isSaveAsAllowed()
      Description copied from interface: ISaveablePart
      Returns whether the "Save As" operation is supported by this part.
      Specified by:
      isSaveAsAllowed in interface ISaveablePart
      Specified by:
      isSaveAsAllowed in class EditorPart
      Returns:
      true if "Save As" is supported, and false 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 interface ISaveablePart
      Specified by:
      doSaveAs in class EditorPart
    • doSave

      public void doSave(IProgressMonitor progressMonitor)
      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 the IProgressMonitor to inform the caller.

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

      Specified by:
      doSave in interface ISaveablePart
      Specified by:
      doSave in class EditorPart
      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 with PROP_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 interface ISaveablePart
      Specified by:
      isDirty in class EditorPart
      Returns:
      true if the contents have been modified and need saving, and false if they have not changed since the last save
    • propertyChange

      public void propertyChange(PropertyChangeEvent event)
      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 interface IPropertyChangeListener
      Parameters:
      event - the property change event object describing which property changed and how
    • getSaveables

      public Saveable[] 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 using ISaveablesLifecycleListener.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 type SaveablesLifecycleEvent.PRE_CLOSE followed by an event of type SaveablesLifecycleEvent.POST_CLOSE. Since firing the PRE_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 or createPartControl), or from its dispose method. Parts that implement IReusableEditor must notify when their input is changed through IReusableEditor.setInput(IEditorInput).

      Specified by:
      getSaveables in interface ISaveablesSource
      Returns:
      the saveables presented by the workbench part
      See Also:
    • getActiveSaveables

      public Saveable[] 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 interface ISaveablesSource
      Returns:
      the saveables currently active in the workbench part
    • handleLifecycleEvent

      public void handleLifecycleEvent(SaveablesLifecycleEvent event)
      Description copied from interface: ISaveablesLifecycleListener
      Handle the given event. This method must be called on the UI thread.
      Specified by:
      handleLifecycleEvent in interface ISaveablesLifecycleListener
      Parameters:
      event - the event