Package org.eclipse.team.ui.synchronize
Class SynchronizeModelAction
- java.lang.Object
-
- org.eclipse.core.commands.common.EventManager
-
- org.eclipse.jface.action.AbstractAction
-
- org.eclipse.jface.action.Action
-
- org.eclipse.ui.actions.BaseSelectionListenerAction
-
- org.eclipse.team.ui.synchronize.SynchronizeModelAction
-
- All Implemented Interfaces:
IAction
,ISelectionChangedListener
public abstract class SynchronizeModelAction extends BaseSelectionListenerAction
This action provides utilities for performing operations on selections that containISynchronizeModelElement
instances. Subclasses can use this support to filter the selection in order to determine action enablement and generate the input for aSynchronizeModelOperation
.- Since:
- 3.0
- See Also:
SyncInfo
,SyncInfoSet
,SynchronizeModelOperation
-
-
Field Summary
-
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SynchronizeModelAction(String text, ISynchronizePageConfiguration configuration)
Create an action with the given text and configuration.protected
SynchronizeModelAction(String text, ISynchronizePageConfiguration configuration, ISelectionProvider selectionProvider)
Create an action with the given text and configuration.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
confirmSaveOfDirtyEditor()
Returns whether the user should be prompted to save dirty editors.ISynchronizePageConfiguration
getConfiguration()
Returns the configuration showing this action.protected IDiffElement[]
getFilteredDiffElements()
Return the selected diff element for which this action is enabled.protected IDiffElement[]
getSelectedDiffElements()
This method returns all instances of IDiffElement that are in the current selection.protected abstract SynchronizeModelOperation
getSubscriberOperation(ISynchronizePageConfiguration configuration, IDiffElement[] elements)
Return the subscriber operation associated with this action.protected FastSyncInfoFilter
getSyncInfoFilter()
Filter uses to filter the user selection to contain only those elements for which this action is enabled.protected void
handle(Exception e)
Generic error handling code that uses an error dialog to show the error to the user.protected void
initialize(ISynchronizePageConfiguration configuration, ISelectionProvider selectionProvider)
Method invoked from the constructor.protected boolean
needsToSaveDirtyEditors()
Return whether dirty editor should be saved before this action is run.void
run()
The default implementation of thisIAction
method does nothing.protected void
runOperation()
Create and run the operation for this action.boolean
saveAllEditors(boolean confirm)
Save all dirty editors in the workbench that are open on files that may be affected by this operation.void
selectionChanged(ISelection selection)
Set the selection of this action to the given selectionprotected boolean
updateSelection(IStructuredSelection selection)
Updates this action in response to the given selection.-
Methods inherited from class org.eclipse.ui.actions.BaseSelectionListenerAction
clearCache, getStructuredSelection, runWithEvent, selectionChanged, selectionChanged
-
Methods inherited from class org.eclipse.jface.action.Action
convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText
-
Methods inherited from class org.eclipse.jface.action.AbstractAction
addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener
-
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
-
-
-
-
Constructor Detail
-
SynchronizeModelAction
protected SynchronizeModelAction(String text, ISynchronizePageConfiguration configuration)
Create an action with the given text and configuration. By default, the action registers for selection change with the selection provider from the configuration's site.- Parameters:
text
- the action's textconfiguration
- the actions synchronize page configuration
-
SynchronizeModelAction
protected SynchronizeModelAction(String text, ISynchronizePageConfiguration configuration, ISelectionProvider selectionProvider)
Create an action with the given text and configuration. By default, the action registers for selection change with the given selection provider.- Parameters:
text
- the action's textconfiguration
- the actions synchronize page configurationselectionProvider
- a selection provider
-
-
Method Detail
-
initialize
protected void initialize(ISynchronizePageConfiguration configuration, ISelectionProvider selectionProvider)
Method invoked from the constructor. The default implementation registers the action as a selection change listener. Subclasses may override.- Parameters:
configuration
- the synchronize page configurationselectionProvider
- a selection provider
-
run
public void run()
Description copied from class:Action
The default implementation of thisIAction
method does nothing. Subclasses should override this method if they do not need information from the triggering event, or overriderunWithEvent(Event)
if they do.- Specified by:
run
in interfaceIAction
- Overrides:
run
in classAction
- See Also:
How radio buttons are handled
,How check boxes are handled
-
runOperation
protected void runOperation() throws InvocationTargetException, InterruptedException
Create and run the operation for this action. By default, the operation is created by callinggetSubscriberOperation
and then run. Subclasses may override.- Throws:
InvocationTargetException
- if an error occursInterruptedException
- if operation is interrupted- Since:
- 3.1
-
needsToSaveDirtyEditors
protected boolean needsToSaveDirtyEditors()
Return whether dirty editor should be saved before this action is run. Default istrue
.- Returns:
- whether dirty editor should be saved before this action is run
-
confirmSaveOfDirtyEditor
protected boolean confirmSaveOfDirtyEditor()
Returns whether the user should be prompted to save dirty editors. The default istrue
.- Returns:
- whether the user should be prompted to save dirty editors
-
getSubscriberOperation
protected abstract SynchronizeModelOperation getSubscriberOperation(ISynchronizePageConfiguration configuration, IDiffElement[] elements)
Return the subscriber operation associated with this action. This operation will be run when the action is run. Subclass may implement this method and provide an operation subclass or may override therun(IAction)
method directly if they choose not to implement aSynchronizeModelOperation
.- Parameters:
configuration
- the synchronize page configuration for the page to which this action is associatedelements
- the selected diff element for which this action is enabled.- Returns:
- the subscriber operation to be run by this action.
-
handle
protected void handle(Exception e)
Generic error handling code that uses an error dialog to show the error to the user. Subclasses can use this method and/or override it.- Parameters:
e
- the exception that occurred.
-
updateSelection
protected boolean updateSelection(IStructuredSelection selection)
Description copied from class:BaseSelectionListenerAction
Updates this action in response to the given selection.The
BaseSelectionListenerAction
implementation of this method returnstrue
. Subclasses may extend to react to selection changes; however, if the super method returnsfalse
, the overriding method must also returnfalse
.- Overrides:
updateSelection
in classBaseSelectionListenerAction
- Parameters:
selection
- the new selection- Returns:
true
if the action should be enabled for this selection, andfalse
otherwise
-
getSelectedDiffElements
protected final IDiffElement[] getSelectedDiffElements()
This method returns all instances of IDiffElement that are in the current selection.- Returns:
- the selected elements
-
getSyncInfoFilter
protected FastSyncInfoFilter getSyncInfoFilter()
Filter uses to filter the user selection to contain only those elements for which this action is enabled. Default filter includes all out-of-sync elements in the current selection. Subclasses may override.- Returns:
- a sync info filter which selects all out-of-sync resources.
-
getFilteredDiffElements
protected final IDiffElement[] getFilteredDiffElements()
Return the selected diff element for which this action is enabled.- Returns:
- the list of selected diff elements for which this action is enabled.
-
selectionChanged
public void selectionChanged(ISelection selection)
Set the selection of this action to the given selection- Parameters:
selection
- the selection
-
getConfiguration
public ISynchronizePageConfiguration getConfiguration()
Returns the configuration showing this action.- Returns:
- the configuration showing this action.
-
saveAllEditors
public final boolean saveAllEditors(boolean confirm)
Save all dirty editors in the workbench that are open on files that may be affected by this operation. Opens a dialog to prompt the user ifconfirm
is true. Return true if successful. Return false if the user has canceled the command. Must be called from the UI thread.- Parameters:
confirm
- prompt the user if true- Returns:
- boolean false if the operation was canceled.
-
-