Class RefactoringHistoryWizard
- All Implemented Interfaces:
IShellProvider
,IWizard
- A refactoring history wizard consists of a sequence of one error page to present the outcome of a refactoring's condition checking and one preview page to present a preview of the workspace changes.
- Refactorings are applied to the workspace as soon as a preview has been accepted. Additionally, refactoring history wizards support the headless execution of refactorings. The user guided execution of a refactoring history triggers a series of error pages and preview pages. Within this sequence of pages, going back is not supported anymore. However, canceling the refactoring history wizard will undo the already performed refactorings.
A refactoring history wizard is usually opened using the WizardDialog
.
Clients must ensure that the calling thread holds the workspace lock.
Note: this class is intended to be extended by clients.
- Since:
- 3.2
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The status code representing an interrupted operation.Fields inherited from class org.eclipse.jface.wizard.Wizard
DEFAULT_IMAGE
-
Constructor Summary
ConstructorDescriptionRefactoringHistoryWizard
(boolean overview, String caption, String title, String description) Creates a new refactoring history wizard.RefactoringHistoryWizard
(String caption, String title, String description) Creates a new refactoring history wizard. -
Method Summary
Modifier and TypeMethodDescriptionprotected RefactoringStatus
aboutToPerformHistory
(IProgressMonitor monitor) Hook method which is called before the first refactoring of the history is executed.protected RefactoringStatus
aboutToPerformRefactoring
(Refactoring refactoring, RefactoringDescriptor descriptor, IProgressMonitor monitor) Hook method which is called before the a refactoring of the history is executed.final void
addPage
(IWizardPage page) Adds a new page to this wizard.final void
addPages()
TheWizard
implementation of thisIWizard
method does nothing.protected void
Adds user defined wizard pages in front of the wizard.boolean
Returns whether this wizard could be finished without further user interaction.protected Refactoring
createRefactoring
(RefactoringDescriptor descriptor, RefactoringStatus status) Deprecated.since 3.6.protected Refactoring
createRefactoring
(RefactoringDescriptor descriptor, RefactoringStatus status, IProgressMonitor monitor) Deprecated.since 3.7.protected RefactoringContext
createRefactoringContext
(RefactoringDescriptor descriptor, RefactoringStatus status, IProgressMonitor monitor) Creates a refactoring context from the specified refactoring descriptor.void
dispose()
TheWizard
implementation of thisIWizard
method disposes all the pages controls usingDialogPage.dispose
.final org.eclipse.ltk.internal.ui.refactoring.IErrorWizardPage
Returns the error wizard page.getNextPage
(IWizardPage page) Returns the successor of the given page.final org.eclipse.ltk.internal.ui.refactoring.IPreviewWizardPage
Returns the preview wizard page.getPreviousPage
(IWizardPage page) Returns the predecessor of the given page.protected RefactoringStatus
historyPerformed
(IProgressMonitor monitor) Hook method which is called when all refactorings of the history have been executed.boolean
TheWizard
implementation of thisIWizard
method does nothing and returnstrue
.boolean
Subclasses must implement thisIWizard
method to perform any special finish processing for their wizard.final RefactoringStatus
performPreviewChange
(Change change, Refactoring refactoring) Performs the change previously displayed in the preview.protected RefactoringStatus
refactoringPerformed
(Refactoring refactoring, IProgressMonitor monitor) Hook method which is called when the specified refactoring has been performed, e.g. its change object has been successfully applied to the workspace.protected boolean
selectPreviewChange
(Change change) Hook method which is called for each change before it is displayed in a preview page.protected boolean
Hook method which is called for each status entry before it is displayed in a wizard page.final void
setConfiguration
(RefactoringHistoryControlConfiguration configuration) Sets the refactoring history control configuration.final void
setInput
(RefactoringHistory history) Sets the refactoring history.Methods inherited from class org.eclipse.jface.wizard.Wizard
createPageControls, getContainer, getDefaultPageImage, getDialogSettings, getMinimumWizardSize, getPage, getPageCount, getPages, getShell, getStartingPage, getTitleBarColor, getWindowTitle, isHelpAvailable, needsPreviousAndNextButtons, needsProgressMonitor, setContainer, setDefaultPageImageDescriptor, setDialogSettings, setForcePreviousAndNextButtons, setHelpAvailable, setNeedsProgressMonitor, setTitleBarColor, setWindowTitle
-
Field Details
-
STATUS_CODE_INTERRUPTED
public static final int STATUS_CODE_INTERRUPTEDThe status code representing an interrupted operation.Note: This API must not be used from outside the refactoring framework.
- See Also:
-
-
Constructor Details
-
RefactoringHistoryWizard
Creates a new refactoring history wizard.Clients must ensure that the refactoring history and the refactoring history control configuration are set before opening the wizard in a dialog.
- Parameters:
overview
-true
to show an overview of the refactorings,false
otherwisecaption
- the caption of the wizard windowtitle
- the title of the overview pagedescription
- the description of the overview page- See Also:
-
RefactoringHistoryWizard
Creates a new refactoring history wizard.Clients must ensure that the refactoring history and the refactoring history control configuration are set before opening the wizard in a dialog.
Calling his constructor is equivalent to
RefactoringHistoryWizard(boolean, String, String, String)
with the first argument equal totrue
.- Parameters:
caption
- the caption of the wizard windowtitle
- the title of the overview pagedescription
- the description of the overview page- See Also:
-
-
Method Details
-
aboutToPerformHistory
Hook method which is called before the first refactoring of the history is executed. This method may be called from non-UI threads.This method is guaranteed to be called exactly once during the lifetime of a refactoring history wizard. The default implementation does nothing and returns a refactoring status of severity
RefactoringStatus.OK
.Subclasses may reimplement this method to perform any special processing.
Returning a status of severity
RefactoringStatus.FATAL
will terminate the execution of the refactorings.- Parameters:
monitor
- the progress monitor to use- Returns:
- a status describing the outcome of the operation
-
aboutToPerformRefactoring
protected RefactoringStatus aboutToPerformRefactoring(Refactoring refactoring, RefactoringDescriptor descriptor, IProgressMonitor monitor) Hook method which is called before the a refactoring of the history is executed. The refactoring itself is in an initialized state at the time of the method call. The default implementation does nothing and returns a status of severityRefactoringStatus.OK
. This method may be called from non-UI threads.Subclasses may extend this method to perform any special processing.
Returning a status of severity
RefactoringStatus.FATAL
will terminate the execution of the current refactoring.- Parameters:
refactoring
- the refactoring about to be executeddescriptor
- the refactoring descriptormonitor
- the progress monitor to use- Returns:
- a status describing the outcome of the initialization
-
addPage
Adds a new page to this wizard. The page is inserted at the end of the page list. Clients must contribute their wizard pages by re-implementingaddUserDefinedPages()
. -
addPages
public final void addPages()Description copied from class:Wizard
TheWizard
implementation of thisIWizard
method does nothing. Subclasses should extend if extra pages need to be added before the wizard opens. New pages should be added by callingaddPage
. -
addUserDefinedPages
protected void addUserDefinedPages()Adds user defined wizard pages in front of the wizard.Clients may extend this method to add custom wizard pages in front of the wizard.
-
canFinish
public boolean canFinish()Description copied from interface:IWizard
Returns whether this wizard could be finished without further user interaction.The result of this method is typically used by the wizard container to enable or disable the Finish button.
-
createRefactoring
@Deprecated protected Refactoring createRefactoring(RefactoringDescriptor descriptor, RefactoringStatus status) throws CoreException Deprecated.since 3.6. OverridecreateRefactoringContext(RefactoringDescriptor, RefactoringStatus, IProgressMonitor)
insteadMethod which is called to create a refactoring instance from a refactoring descriptor. The refactoring must be in an initialized state after the return of the method call. The default implementation delegates the task to the refactoring descriptor. This method may be called from non-UI threads.Subclasses may reimplement this method to customize the initialization of a refactoring.
- Parameters:
descriptor
- the refactoring descriptorstatus
- a refactoring status describing the outcome of the initialization- Returns:
- the refactoring, or
null
if this refactoring descriptor represents the unknown refactoring, or if no refactoring contribution is available for this refactoring descriptor - Throws:
CoreException
- if an error occurs while creating the refactoring instance
-
createRefactoring
@Deprecated protected Refactoring createRefactoring(RefactoringDescriptor descriptor, RefactoringStatus status, IProgressMonitor monitor) throws CoreException Deprecated.since 3.7. OverridecreateRefactoringContext(RefactoringDescriptor, RefactoringStatus, IProgressMonitor)
insteadCreates a refactoring from the specified refactoring descriptor.The default implementation calls
createRefactoring(RefactoringDescriptor, RefactoringStatus)
followed byaboutToPerformRefactoring(Refactoring, RefactoringDescriptor, IProgressMonitor)
. Implementors can replace this implementation.- Parameters:
descriptor
- the refactoring descriptorstatus
- the refactoring statusmonitor
- the progress monitor to use- Returns:
- the refactoring, or
null
if this refactoring descriptor represents the unknown refactoring, or if no refactoring contribution is available for this refactoring descriptor - Throws:
CoreException
- if an error occurs while creating the refactoring instance- Since:
- 3.4
-
createRefactoringContext
protected RefactoringContext createRefactoringContext(RefactoringDescriptor descriptor, RefactoringStatus status, IProgressMonitor monitor) throws CoreException Creates a refactoring context from the specified refactoring descriptor.The default implementation calls
RefactoringDescriptor.createRefactoringContext(RefactoringStatus)
followed byaboutToPerformRefactoring(Refactoring, RefactoringDescriptor, IProgressMonitor)
. Implementors can replace this implementation.- Parameters:
descriptor
- the refactoring descriptorstatus
- the refactoring statusmonitor
- the progress monitor to use- Returns:
- the refactoring context, or
null
if this refactoring descriptor represents the unknown refactoring, or if no refactoring contribution is available for this refactoring descriptor - Throws:
CoreException
- if an error occurs while creating the refactoring context- Since:
- 3.7
-
dispose
public void dispose()Description copied from class:Wizard
TheWizard
implementation of thisIWizard
method disposes all the pages controls usingDialogPage.dispose
. Subclasses should extend this method if the wizard instance maintains addition SWT resource that need to be disposed. -
getErrorPage
public final org.eclipse.ltk.internal.ui.refactoring.IErrorWizardPage getErrorPage()Returns the error wizard page.Note: This API must not be called from outside the refactoring framework.
- Returns:
- the error wizard page
- Restriction:
- This method is not intended to be referenced by clients.
-
getNextPage
Description copied from interface:IWizard
Returns the successor of the given page.This method is typically called by a wizard page
- Specified by:
getNextPage
in interfaceIWizard
- Overrides:
getNextPage
in classWizard
- Parameters:
page
- the page- Returns:
- the next page, or
null
if none
-
getPreviewPage
public final org.eclipse.ltk.internal.ui.refactoring.IPreviewWizardPage getPreviewPage()Returns the preview wizard page.Note: This API must not be called from outside the refactoring framework.
- Returns:
- the preview wizard page
- Restriction:
- This method is not intended to be referenced by clients.
-
getPreviousPage
Description copied from interface:IWizard
Returns the predecessor of the given page.This method is typically called by a wizard page
- Specified by:
getPreviousPage
in interfaceIWizard
- Overrides:
getPreviousPage
in classWizard
- Parameters:
page
- the page- Returns:
- the previous page, or
null
if none
-
historyPerformed
Hook method which is called when all refactorings of the history have been executed. This method may be called from non-UI threads.This method is guaranteed to be called exactly once during the lifetime of a refactoring history wizard. It is not guaranteed that the user interface has not already been disposed of. The default implementation does nothing and returns a refactoring status of severity
RefactoringStatus.OK
.Subclasses may reimplement this method to perform any special processing.
- Parameters:
monitor
- the progress monitor to use- Returns:
- a status describing the outcome of the operation
-
performCancel
public boolean performCancel()Description copied from class:Wizard
TheWizard
implementation of thisIWizard
method does nothing and returnstrue
. Subclasses should reimplement this method if they need to perform any special cancel processing for their wizard.- Specified by:
performCancel
in interfaceIWizard
- Overrides:
performCancel
in classWizard
- Returns:
true
to indicate the cancel request was accepted, andfalse
to indicate that the cancel request was refused
-
performFinish
public boolean performFinish()Description copied from class:Wizard
Subclasses must implement thisIWizard
method to perform any special finish processing for their wizard.- Specified by:
performFinish
in interfaceIWizard
- Specified by:
performFinish
in classWizard
- Returns:
true
to indicate the finish request was accepted, andfalse
to indicate that the finish request was refused
-
performPreviewChange
Performs the change previously displayed in the preview.Note: This API must not be called from outside the refactoring framework.
- Parameters:
change
- the change displayed in the previewrefactoring
- the associated refactoring- Returns:
- the status of the operation, already handled by the user
-
refactoringPerformed
Hook method which is called when the specified refactoring has been performed, e.g. its change object has been successfully applied to the workspace. The default implementation does nothing and returns a refactoring status of severityRefactoringStatus.OK
. This method may be called from non-UI threads.Subclasses may reimplement this method to perform any special processing.
Returning a status of severity
RefactoringStatus.FATAL
will terminate the execution of the refactorings.- Parameters:
refactoring
- the refactoring which has been performedmonitor
- the progress monitor to use- Returns:
- a status describing the outcome of the operation
-
selectPreviewChange
Hook method which is called for each change before it is displayed in a preview page. The default implementation returnstrue
.Subclasses may reimplement this method to perform any special filtering of preview changes.
- Parameters:
change
- the change to select- Returns:
true
if the change passes the filter,false
otherwise
-
selectStatusEntry
Hook method which is called for each status entry before it is displayed in a wizard page. The default implementation returnstrue
.Subclasses may reimplement this method to perform any special filtering of status entries on error pages.
- Parameters:
entry
- the status entry to select- Returns:
true
if the status entry passes the filter,false
otherwise
-
setConfiguration
Sets the refactoring history control configuration.This method must be called before opening the wizard in a dialog.
- Parameters:
configuration
- the configuration to set
-
setInput
Sets the refactoring history.This method must be called before opening the wizard in a dialog.
- Parameters:
history
- the refactoring history
-