RSE
Release 3.2

org.eclipse.rse.ui.wizards
Class AbstractSystemWizard

java.lang.Object
  extended by org.eclipse.jface.wizard.Wizard
      extended by org.eclipse.rse.ui.wizards.AbstractSystemWizard
All Implemented Interfaces:
IWizard, ISystemPromptDialog, ISystemWizard, INewWizard, IWorkbenchWizard
Direct Known Subclasses:
SystemNewFilterWizard, SystemNewProfileWizard

public abstract class AbstractSystemWizard
extends Wizard
implements ISystemWizard

Base class for all RSE wizards. This class is more beneficial when using in conjunction with AbstractSystemWizardPage, and SystemBaseWizardAction.

A wizard is a multi-page UI, that prompts users for information and then uses that information to create something (typically). The wizard has an overall title that shows for each page, and a wizard page title that can be unique per page, but typically is not. Typically, the overall title is a verb, such as "New", while the page title expands on the verb, as in "File". There is also a description per page, which is unique and explains the purpose of that page. Further, there is a wizard image that is always the same per wizard page.

Using this base class for wizards offers the following advantages over just using the eclipse Wizard class:

To use this class, :

  1. Subclass it.
  2. In your constructor, call setHelp(String) to set the overall help, if desired.
  3. In your constructor, call setWizardPageTitle(String) to set the title to use for all pages, if desired.
  4. Override addPages() to add your pages via calls to addPage(IWizardPage).
  5. Override performFinish() to do the wizard's main task when Finish is pressed. Cycle through each of your pages calling performFinish() on each of them. If performFinish() returns false from any page, call setPageError(IWizardPage) and return false from your performFinish() method to cancel the Finish operation.

See Also:
AbstractSystemWizardPage, SystemWizardDialog, SystemBaseWizardAction

Field Summary
protected  boolean cancelled
           
protected  boolean finishPressed
           
protected  String helpId
           
protected  Object input
           
protected  int minPageHeight
           
protected  int minPageWidth
           
protected  Object output
           
protected  SystemWizardDialog owningDialog
           
protected  String pageTitle
           
protected  IStructuredSelection selection
           
protected  Viewer viewer
           
 
Fields inherited from class org.eclipse.jface.wizard.Wizard
DEFAULT_IMAGE
 
Constructor Summary
AbstractSystemWizard()
          Default constructor.
AbstractSystemWizard(String title)
          Constructor when wizard title is known.
AbstractSystemWizard(String title, ImageDescriptor wizardImage)
          Constructor when you both a title and an image for this wizard.
 
Method Summary
 void addPage(IWizardPage page)
          Intercept of parent method so we can percolate the help id
abstract  void addPages()
          Creates the wizard pages.
protected  ISystemTree getCurrentTreeView()
          Return the current viewer as an ISystemTree if it is one, or null otherwise
 String getHelpContextId()
          Return the help Id as set in setHelp(String)
 Object getInputObject()
          For explicitly getting input object
 int getMinimumPageHeight()
          Return the minimum page height.
 int getMinimumPageWidth()
          Return the minimum page width.
 Object getOutputObject()
          For explicitly getting output object after wizard is dismissed.
 SystemWizardDialog getSystemWizardDialog()
          Return the result of setSystemWizardDialog(SystemWizardDialog)
 Viewer getViewer()
          Get the Viewer that called this wizard.
 String getWizardPageTitle()
          Return the page title as set via setWizardPageTitle
 void init(IWorkbench workbench, IStructuredSelection selection)
          Required by INewWizard interface.
 boolean performCancel()
          Override of parent so we can record the fact the wizard was cancelled.
abstract  boolean performFinish()
          Called when finish pressed.
 int publicConvertHeightInCharsToPixels(int chars)
          Expose inherited protected method convertHeightInCharsToPixels as a publicly excessible method Requires setOwningDialog to have been called, else returns -1
 int publicConvertWidthInCharsToPixels(int chars)
          Expose inherited protected method convertWidthInCharsToPixels as a publicly excessible method Requires setOwningDialog to have been called, else returns -1
 void setHelp(String id)
          Set the help context Id (infoPop) for this wizard.
 void setInputObject(Object inputObject)
          For explicitly setting input object
 void setMinimumPageSize(int width, int height)
          Set the wizard's min page width and height.
 void setOutputObject(Object outputObject)
          For explicitly setting output object after wizard is dismissed.
 void setPageError(IWizardPage pageInError)
          If in the processing of performFinish an error is detected on another page of the wizard, the best we can do is tell the user this via an error message on their own page.
 void setSystemWizardDialog(SystemWizardDialog dlg)
          Called from SystemWizardDialog when it is used as the hosting dialog
 void setViewer(Viewer v)
          Set the Viewer that called this wizard.
protected  void setWasCancelled(boolean cancelled)
          You must call this in your performFinish method.
 void setWizardImage(ImageDescriptor wizardImage)
          Set the wizard image.
 void setWizardPageTitle(String pageTitle)
          Set the wizard page title.
 void setWizardTitle(String title)
          Set the wizard title.
 void updateSize()
          Exposes this nice new 2.0 capability to the public.
 boolean wasCancelled()
          Allow caller to determine if wizard was cancelled or not.
 
Methods inherited from class org.eclipse.jface.wizard.Wizard
canFinish, createPageControls, dispose, getContainer, getDefaultPageImage, getDialogSettings, getNextPage, getPage, getPageCount, getPages, getPreviousPage, getShell, getStartingPage, getTitleBarColor, getWindowTitle, isHelpAvailable, needsPreviousAndNextButtons, needsProgressMonitor, setContainer, setDefaultPageImageDescriptor, setDialogSettings, setForcePreviousAndNextButtons, setHelpAvailable, setNeedsProgressMonitor, setTitleBarColor, setWindowTitle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.jface.wizard.IWizard
canFinish, createPageControls, dispose, getContainer, getDefaultPageImage, getDialogSettings, getNextPage, getPage, getPageCount, getPages, getPreviousPage, getStartingPage, getTitleBarColor, getWindowTitle, isHelpAvailable, needsPreviousAndNextButtons, needsProgressMonitor, setContainer
 

Field Detail

finishPressed

protected boolean finishPressed

cancelled

protected boolean cancelled

input

protected Object input

output

protected Object output

selection

protected IStructuredSelection selection

minPageWidth

protected int minPageWidth

minPageHeight

protected int minPageHeight

helpId

protected String helpId

viewer

protected Viewer viewer

pageTitle

protected String pageTitle

owningDialog

protected SystemWizardDialog owningDialog
Constructor Detail

AbstractSystemWizard

public AbstractSystemWizard()
Default constructor.

See Also:
setWizardTitle(String), setWizardImage(ImageDescriptor), setWizardPageTitle(String)

AbstractSystemWizard

public AbstractSystemWizard(String title)
Constructor when wizard title is known. Alternatively, you can call setWizardTitle(String)

See Also:
setWizardImage(ImageDescriptor), setWizardPageTitle(String)

AbstractSystemWizard

public AbstractSystemWizard(String title,
                            ImageDescriptor wizardImage)
Constructor when you both a title and an image for this wizard. Alternatively, you can call setWizardTitle(String) or setWizardImage(ImageDescriptor)

See Also:
setWizardPageTitle(String)
Method Detail

setSystemWizardDialog

public void setSystemWizardDialog(SystemWizardDialog dlg)
Called from SystemWizardDialog when it is used as the hosting dialog

Specified by:
setSystemWizardDialog in interface ISystemWizard

getSystemWizardDialog

public SystemWizardDialog getSystemWizardDialog()
Return the result of setSystemWizardDialog(SystemWizardDialog)

Specified by:
getSystemWizardDialog in interface ISystemWizard

updateSize

public void updateSize()
Exposes this nice new 2.0 capability to the public. Only does anything if being hosted by SystemWizardDialog.

Specified by:
updateSize in interface ISystemWizard

setWizardTitle

public void setWizardTitle(String title)
Set the wizard title. Using this makes it possible to avoid subclassing. Typically the wizard title is the same for all pages... eg "New"


setWizardPageTitle

public void setWizardPageTitle(String pageTitle)
Set the wizard page title. Using this makes it possible to avoid subclassing. The page title goes below the wizard title, and can be unique per page. However, typically the wizard page title is the same for all pages... eg "Filter".

This is not used by default, but can be queried via getPageTitle() when constructing pages.

Specified by:
setWizardPageTitle in interface ISystemWizard

getWizardPageTitle

public String getWizardPageTitle()
Return the page title as set via setWizardPageTitle

Specified by:
getWizardPageTitle in interface ISystemWizard

setWizardImage

public void setWizardImage(ImageDescriptor wizardImage)
Set the wizard image. Using this makes it possible to avoid subclassing


setHelp

public void setHelp(String id)
Set the help context Id (infoPop) for this wizard. This must be fully qualified by plugin ID.

Same as #setHelp(String)

Specified by:
setHelp in interface ISystemWizard
See Also:
#getHelpContextId()

getHelpContextId

public String getHelpContextId()
Return the help Id as set in setHelp(String)

Specified by:
getHelpContextId in interface ISystemWizard

addPage

public void addPage(IWizardPage page)
Intercept of parent method so we can percolate the help id

Overrides:
addPage in class Wizard

setViewer

public void setViewer(Viewer v)
Set the Viewer that called this wizard. It is good practice for actions to call this so wizard can directly access the originating viewer if needed.

This is called for you if using a subclass of SystemBaseWizardAction.

Specified by:
setViewer in interface ISystemWizard

getViewer

public Viewer getViewer()
Get the Viewer that called this wizard. This will be null unless set by the action that started this wizard.

Specified by:
getViewer in interface ISystemWizard

getCurrentTreeView

protected ISystemTree getCurrentTreeView()
Return the current viewer as an ISystemTree if it is one, or null otherwise


setInputObject

public void setInputObject(Object inputObject)
For explicitly setting input object

Specified by:
setInputObject in interface ISystemPromptDialog

getInputObject

public Object getInputObject()
For explicitly getting input object

Specified by:
getInputObject in interface ISystemPromptDialog

getOutputObject

public Object getOutputObject()
For explicitly getting output object after wizard is dismissed. Set by the wizard's processFinish method.

Specified by:
getOutputObject in interface ISystemPromptDialog

setOutputObject

public void setOutputObject(Object outputObject)
For explicitly setting output object after wizard is dismissed. Called in the wizard's processFinish method, typically.

Specified by:
setOutputObject in interface ISystemPromptDialog

wasCancelled

public boolean wasCancelled()
Allow caller to determine if wizard was cancelled or not.

Specified by:
wasCancelled in interface ISystemPromptDialog

setWasCancelled

protected void setWasCancelled(boolean cancelled)
You must call this in your performFinish method.


performCancel

public boolean performCancel()
Override of parent so we can record the fact the wizard was cancelled.

Specified by:
performCancel in interface IWizard
Overrides:
performCancel in class Wizard

init

public void init(IWorkbench workbench,
                 IStructuredSelection selection)
Required by INewWizard interface. It is called by the framework for wizards that are launched file the File->New interface. Otherwise we don't use it. If you need it, the selection is stored in protected variable "selection".

Specified by:
init in interface IWorkbenchWizard

setMinimumPageSize

public void setMinimumPageSize(int width,
                               int height)
Set the wizard's min page width and height. If you pass 0 for either one, the Eclipse default value will be used.

Specified by:
setMinimumPageSize in interface ISystemWizard

getMinimumPageWidth

public int getMinimumPageWidth()
Return the minimum page width. If zero, it has not been explicitly set, so the default is to be used.

Specified by:
getMinimumPageWidth in interface ISystemWizard

getMinimumPageHeight

public int getMinimumPageHeight()
Return the minimum page height. If zero, it has not been explicitly set, so the default is to be used.

Specified by:
getMinimumPageHeight in interface ISystemWizard

setPageError

public void setPageError(IWizardPage pageInError)
If in the processing of performFinish an error is detected on another page of the wizard, the best we can do is tell the user this via an error message on their own page. It seems there is no way in JFace to successfully switch focus to another page.

To simplify processing, simply call this method in your wizard's performFinish if any page's performFinish returned false. Pass the failing page. If it is not the current page, this code will issue msg RSEG1240 "Error on another page" to the user.


publicConvertWidthInCharsToPixels

public int publicConvertWidthInCharsToPixels(int chars)
Expose inherited protected method convertWidthInCharsToPixels as a publicly excessible method

Requires setOwningDialog to have been called, else returns -1

Specified by:
publicConvertWidthInCharsToPixels in interface ISystemPromptDialog

publicConvertHeightInCharsToPixels

public int publicConvertHeightInCharsToPixels(int chars)
Expose inherited protected method convertHeightInCharsToPixels as a publicly excessible method

Requires setOwningDialog to have been called, else returns -1

Specified by:
publicConvertHeightInCharsToPixels in interface ISystemPromptDialog

addPages

public abstract void addPages()
Creates the wizard pages. This method is an override from the parent Wizard class, but is made abstract here to ensure child classes override it.

Specified by:
addPages in interface IWizard
Overrides:
addPages in class Wizard

performFinish

public abstract boolean performFinish()
Called when finish pressed.

Return true if no errors, false to cancel the finish operation.

Typically, you walk through each wizard page calling performFinish on it, and only return true if they all return true. If one of the pages returns false, you should call setPageError(IWizardPage), which shows a message to the user about an error pending on another page, if the given page is not the current page.

Specified by:
performFinish in interface IWizard
Specified by:
performFinish in class Wizard

RSE
Release 3.2

Copyright (c) IBM Corporation and others 2000, 2010. All Rights Reserved.