Class MergeActionHandler

All Implemented Interfaces:
IHandler, IHandler2

public abstract class MergeActionHandler extends AbstractHandler
An abstract superclass that enables models to create handlers for the basic merge operations (merge, overwrite and mark-as-merged). This class makes use of a SynchronizationOperation to determine its enablement state and execute the handler. Enablement is determined using SynchronizationOperation.shouldRun() and the handler will invoke TeamOperation.run() when executed.
Since:
3.2
See Also:
  • Constructor Details

    • MergeActionHandler

      public MergeActionHandler(ISynchronizePageConfiguration configuration)
      Create the handler.
      Parameters:
      configuration - the configuration for the synchronize page displaying the model.
  • Method Details

    • getDefaultHandler

      public static IHandler getDefaultHandler(String mergeActionId, ISynchronizePageConfiguration configuration)
      Return an instance of the default handler for the given merge action id. Note that this handler must be disposed by the caller when it is no longer needed.
      Parameters:
      mergeActionId - the merge action id
      configuration - the synchronization page configuration
      Returns:
      the default handler for the given merge action or null
    • dispose

      public void dispose()
      Deregister this handler from selection change events.
      Specified by:
      dispose in interface IHandler
      Overrides:
      dispose in class AbstractHandler
    • updateEnablement

      protected void updateEnablement(IStructuredSelection selection)
      Update the enablement of this handler for the new selection. By default, this method uses the shouldRun method of the handler's operation to determine the enablement of this handler. Subclasses may override but should either still invoke this method or call setEnabled(boolean) to set the enablement.
      Parameters:
      selection - the selection
    • getConfiguration

      protected final ISynchronizePageConfiguration getConfiguration()
      Return the configuration of the synchronize page that is surfacing the merge action to which this handler is registered.
      Returns:
      the synchronize page configuration
    • getStructuredSelection

      protected final IStructuredSelection getStructuredSelection()
      Return the current selection.
      Returns:
      the current selection.
    • isEnabled

      public boolean isEnabled()
      Description copied from class: AbstractHandler
      Whether this handler is capable of executing at this time. Subclasses may override this method. If clients override this method they should also consider overriding AbstractHandler.setEnabled(Object) so they can be notified about framework execution contexts.
      Specified by:
      isEnabled in interface IHandler
      Overrides:
      isEnabled in class AbstractHandler
      Returns:
      true
      See Also:
    • setEnabled

      protected void setEnabled(boolean isEnabled)
      Set the enablement of this handler.
      Parameters:
      isEnabled - whether the handler is enabled
    • execute

      public Object execute(ExecutionEvent event) throws ExecutionException
      Description copied from interface: IHandler
      Executes with the map of parameter values by name.
      Parameters:
      event - An event containing all the information about the current state of the application; must not be null.
      Returns:
      the result of the execution. Reserved for future use, must be null.
      Throws:
      ExecutionException - if an exception occurred during execution.
    • getOperation

      protected abstract SynchronizationOperation getOperation()
      Return the synchronization operation that performs the merge operation.
      Returns:
      a synchronization operation
    • getSaveable

      public SaveableComparison getSaveable()
      Return the saveable that is the target of this handler. By default, the saveable of this handlers operation is returned.
      Returns:
      the saveable that is the target of this operation