org.netbeans.spi.wizard
Class WizardPage

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.netbeans.spi.wizard.WizardPage
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, WizardPanel

public class WizardPage
extends javax.swing.JPanel
implements WizardPanel

A convenience JPanel subclass that makes it easy to create wizard panels. This class provides a number of conveniences:

Automatic listening to child components
If you add an editable component (all standard Swing controls are supported) to a WizardPage or a child JPanel inside it, a listener is automatically attached to it. If user input occurs, the following things happen, in order:

The above behavior can be disabled by passing false to the appropriate constructor. In that case, validateContents will never be called automatically.

If you have custom components that WizardPage will not know how to listen to automatically, attach an appropriate listener to them and optionally call userInputReceived() with the component and the event if you want to run your automatic validation code.

For convenience, this class implements the relevant methods for accessing the WizardController and the settings map for the wizard that the panel is a part of.

Instances of WizardPage can be returned from a WizardPanelProvider; this class also offers two methods for conveniently assembling a wizard:

Note that during development of a wizard, it is worthwhile to test/run with assertions enabled, as there is quite a bit of validity checking via assertions that can help find problems early.

Using Custom Components

If the autoListen constructor argument is true, a WizardPage will automatically listen to components which have a name, if they are standard Swing components it knows how to listen to. If you are using custom components, implement WizardPage.CustomComponentListener and return it from createCustomComponentListener() to add supplementary listening code for custom components.

Note: Swing components do not fire property changes when setName() is called. If your component's values are not being propagated into the settings map, make sure you are calling setName() before adding the component to the hierarchy.

Also note that cell editors in tables and lists and so forth are always ignored by the automatic listening code.

Author:
Tim Boudreau
See Also:
Serialized Form

Nested Class Summary
Modifier and Type Class and Description
static class WizardPage.CustomComponentListener
          Implement this class if you are using custom Swing or AWT components, and return an instance of it from WizardPage.createCustomComponentListener().
static class WizardPage.CustomComponentNotifier
          Object which is passed to CustomComponentListener.startListeningTo(), which can be called when an event has occurred on a custom component the CustomComponentListener has claimed (by returning true from its accept() method).
static interface WizardPage.WizardResultProducer
          Interface that is passed to WizardPage.createWizard().
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
Modifier and Type Field and Description
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Modifier Constructor and Description
protected WizardPage()
          Default constructor.
protected WizardPage(boolean autoListen)
          Use this constructor or the default constructor if you intend to pass an array of Class objects to lazily create WizardPanels.
  WizardPage(java.lang.String stepDescription)
          Create an auto-listening WizardPage with the passed description
  WizardPage(java.lang.String stepDescription, boolean autoListen)
          Create a WizardPage with the passed description and auto-listening behavior.
  WizardPage(java.lang.String stepId, java.lang.String stepDescription)
          Create an auto-listening WizardPage with the passed description
  WizardPage(java.lang.String stepId, java.lang.String stepDescription, boolean autoListen)
          Construct a new WizardPage with the passed step id and description.
 
Method Summary
Modifier and Type Method and Description
 void addNotify()
           
 WizardPanelNavResult allowBack(java.lang.String stepName, java.util.Map settings, Wizard wizard)
          This method is invoked when the "back" button has been pushed, to discard any data from the setings that will not been needed and for which the normal "just hide that data" is not the desired behavior.
 WizardPanelNavResult allowFinish(java.lang.String stepName, java.util.Map settings, Wizard wizard)
          This method is invoked when the "finish" button has been pushed, to allow veto of the finish action BEFORE the wizard finish method is invoked.
 WizardPanelNavResult allowNext(java.lang.String stepName, java.util.Map settings, Wizard wizard)
          This method is invoked when the "next" button has been pushed, to do a final validation of input (such as doing a database login).
protected  WizardPage.CustomComponentListener createCustomComponentListener()
          If you are using custom Swing or AWT components which the WizardPage will not know how to automatically listen to, you may want to override this method, implement CustomComponentListener and return an instance of it.
static Wizard createWizard(java.lang.Class[] wizardPageClasses)
          Create a simple Wizard from an array of classes, each of which is a unique subclass of WizardPage, with a no-op WizardResultProducer.
static Wizard createWizard(java.lang.Class[] wizardPageClasses, WizardPage.WizardResultProducer finisher)
          Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.
static Wizard createWizard(java.lang.String title, java.lang.Class[] wizardPageClasses)
          Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.
static Wizard createWizard(java.lang.String title, java.lang.Class[] wizardPageClasses, WizardPage.WizardResultProducer finisher)
          Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.
static Wizard createWizard(java.lang.String title, WizardPage[] contents)
           
static Wizard createWizard(java.lang.String title, WizardPage[] contents, WizardPage.WizardResultProducer finisher)
           
static Wizard createWizard(WizardPage[] contents)
          Create a simple Wizard from an array of WizardPages, with a no-op WizardResultProducer.
static Wizard createWizard(WizardPage[] contents, WizardPage.WizardResultProducer finisher)
          Create a simple Wizard from an array of WizardPages
 java.lang.String getLongDescription()
          Get the long description of this page, which should be used in the title area of the wizard's UI if non-null.
protected  java.lang.Object getMapKeyFor(java.awt.Component c)
          Get the map key that should be used to automatically put the value represented by this component into the wizard data map.
protected  java.lang.Object getWizardData(java.lang.Object key)
          Retrieve a value stored in the wizard map, which may have been putWizardData there by this panel or any previous panel in the wizard which contains this panel.
protected  java.lang.Object[] getWizardDataKeys()
          Returns all of the keys in the wizard data map.
protected  java.util.Map getWizardDataMap()
          Get the settings map into which the wizard gathers settings.
protected  void putWizardData(java.lang.Object key, java.lang.Object value)
          Store a value in response to user interaction with a GUI component.
protected  void recycle()
          Called if the user is navigating into this panel when it has already been displayed at least once - the user has navigated back to this panel, or back past this panel and is now navigating forward again.
protected  void renderingPage()
          Called whenever the page is rendered.
protected  void setBusy(boolean busy)
          Disable all navigation.
protected  void setForwardNavigationMode(int value)
          Set whether the finish, next or both buttons should be enabled, assuming no problem string is set.
protected  void setLongDescription(java.lang.String desc)
          Set the long description of this page.
protected  void setProblem(java.lang.String value)
          Set the problem string.
protected  void userInputReceived(java.awt.Component source, java.lang.Object event)
          Called when an event is received from one of the components in the panel that indicates user input.
protected  java.lang.String validateContents(java.awt.Component component, java.lang.Object event)
          Called when user interaction has occurred on a component contained by this panel or one of its children.
protected  java.lang.Object valueFrom(java.awt.Component comp)
          Given an ad-hoc swing component, fetch the likely value based on its state.
protected  void valueTo(java.util.Map settings, java.awt.Component comp)
          Given an ad-hoc swing component, set the value as the property from the settings.
protected  boolean wizardDataContainsKey(java.lang.Object key)
          Determine if the wizard map contains the requested key.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WizardPage

public WizardPage(java.lang.String stepDescription,
                  boolean autoListen)
Create a WizardPage with the passed description and auto-listening behavior.

Parameters:
stepDescription - the localized description of this step
autoListen - if true, components added will automatically be listened to for user input

WizardPage

public WizardPage(java.lang.String stepId,
                  java.lang.String stepDescription,
                  boolean autoListen)
Construct a new WizardPage with the passed step id and description. Use this constructor for WizardPages which will be constructed ahead of time and passed in an array to createWizard.

Parameters:
stepId - the unique ID for the step represented. If null, the class name or a variant of it will be used
stepDescription - the localized description of this step
autoListen - if true, components added will automatically be listened to for user input
See Also:
validateContents(java.awt.Component, java.lang.Object)

WizardPage

public WizardPage(java.lang.String stepDescription)
Create an auto-listening WizardPage with the passed description

Parameters:
stepDescription - the localized description of this step

WizardPage

public WizardPage(java.lang.String stepId,
                  java.lang.String stepDescription)
Create an auto-listening WizardPage with the passed description

Parameters:
stepId - The unique id for the step. If null, an id will be generated
stepDescription - the localized description of this step

WizardPage

protected WizardPage(boolean autoListen)
Use this constructor or the default constructor if you intend to pass an array of Class objects to lazily create WizardPanels.


WizardPage

protected WizardPage()
Default constructor. AutoListening will be on by default.

Method Detail

createCustomComponentListener

protected WizardPage.CustomComponentListener createCustomComponentListener()
If you are using custom Swing or AWT components which the WizardPage will not know how to automatically listen to, you may want to override this method, implement CustomComponentListener and return an instance of it.

Returns:
A CustomComponentListener implementation, or null (the default).

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JComponent

allowBack

public WizardPanelNavResult allowBack(java.lang.String stepName,
                                      java.util.Map settings,
                                      Wizard wizard)
Description copied from interface: WizardPanel
This method is invoked when the "back" button has been pushed, to discard any data from the setings that will not been needed and for which the normal "just hide that data" is not the desired behavior. (See MergeMap for discussion of the "hide the data" behavior) If this method return false, then the "next" button will not change the displayed panel. Presumably some error will have been shown to the user.

Specified by:
allowBack in interface WizardPanel
Returns:
WizardPanelNavResult.PROCEED if the "back" button should proceed, WizardPanelNavResult.REMAIN_ON_PAGE if "back" should not proceed, or a instance of subclass of WizardPanelResult that will do some background computation and call the progress.finished method with one of those constants. (or call progress.failed with the error message)

allowFinish

public WizardPanelNavResult allowFinish(java.lang.String stepName,
                                        java.util.Map settings,
                                        Wizard wizard)
Description copied from interface: WizardPanel
This method is invoked when the "finish" button has been pushed, to allow veto of the finish action BEFORE the wizard finish method is invoked. If this method return false, then the "finish" button will have no effect. Presumably some error will have been shown to the user.

Specified by:
allowFinish in interface WizardPanel
Returns:
WizardPanelNavResult.PROCEED if the "finish" button should proceed, WizardPanelNavResult.REMAIN_ON_PAGE if "finish" should not proceed, or a instance of subclass of WizardPanelResult that will do some background computation and call the progress.finished method with one of those constants. (or call progress.failed with the error message)

allowNext

public WizardPanelNavResult allowNext(java.lang.String stepName,
                                      java.util.Map settings,
                                      Wizard wizard)
Description copied from interface: WizardPanel
This method is invoked when the "next" button has been pushed, to do a final validation of input (such as doing a database login). If this method return false, then the "next" button will not change the displayed panel. Presumably some error will have been shown to the user.

Specified by:
allowNext in interface WizardPanel
Returns:
WizardPanelNavResult.PROCEED if the "next" button should proceed, WizardPanelNavResult.REMAIN_ON_PAGE if "next" should not proceed, or a instance of subclass of WizardPanelResult that will do some background computation and call the progress.finished method with one of those constants (or call progress.failed with the error message)

renderingPage

protected void renderingPage()
Called whenever the page is rendered. This can be used by the page as a notification to load page-specific information in its fields.

By default, this method does nothing.


createWizard

public static Wizard createWizard(WizardPage[] contents,
                                  WizardPage.WizardResultProducer finisher)
Create a simple Wizard from an array of WizardPages


createWizard

public static Wizard createWizard(java.lang.String title,
                                  WizardPage[] contents,
                                  WizardPage.WizardResultProducer finisher)

createWizard

public static Wizard createWizard(java.lang.String title,
                                  WizardPage[] contents)

createWizard

public static Wizard createWizard(WizardPage[] contents)
Create a simple Wizard from an array of WizardPages, with a no-op WizardResultProducer.


createWizard

public static Wizard createWizard(java.lang.Class[] wizardPageClasses,
                                  WizardPage.WizardResultProducer finisher)
Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.


createWizard

public static Wizard createWizard(java.lang.String title,
                                  java.lang.Class[] wizardPageClasses,
                                  WizardPage.WizardResultProducer finisher)
Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.


createWizard

public static Wizard createWizard(java.lang.String title,
                                  java.lang.Class[] wizardPageClasses)
Create simple Wizard from an array of classes, each of which is a unique subclass of WizardPage.


createWizard

public static Wizard createWizard(java.lang.Class[] wizardPageClasses)
Create a simple Wizard from an array of classes, each of which is a unique subclass of WizardPage, with a no-op WizardResultProducer.


setProblem

protected final void setProblem(java.lang.String value)
Set the problem string. Call this method if next/finish should be disabled. The passed string will be visible to the user, and should be a short, localized description of what is wrong.


setForwardNavigationMode

protected final void setForwardNavigationMode(int value)
Set whether the finish, next or both buttons should be enabled, assuming no problem string is set.

Parameters:
value - WizardController.MODE_CAN_CONTINUE, WizardController.MODE_CAN_FINISH or WizardController.MODE_CAN_CONTINUE_OR_FINISH;

setBusy

protected final void setBusy(boolean busy)
Disable all navigation. Useful if some background task is being completed during which no navigation should be allowed. Use with care, as it disables the cancel button as well.


putWizardData

protected final void putWizardData(java.lang.Object key,
                                   java.lang.Object value)
Store a value in response to user interaction with a GUI component.


getWizardDataKeys

protected final java.lang.Object[] getWizardDataKeys()
Returns all of the keys in the wizard data map.


getWizardData

protected final java.lang.Object getWizardData(java.lang.Object key)
Retrieve a value stored in the wizard map, which may have been putWizardData there by this panel or any previous panel in the wizard which contains this panel.


wizardDataContainsKey

protected final boolean wizardDataContainsKey(java.lang.Object key)
Determine if the wizard map contains the requested key.


userInputReceived

protected final void userInputReceived(java.awt.Component source,
                                       java.lang.Object event)
Called when an event is received from one of the components in the panel that indicates user input. Typically you won't need to touch this method, unless your panel contains custom components which are not subclasses of any standard Swing component, which the framework won't know how to listen for changes on. For such cases, attach a listener to the custom component, and call this method with the event if you want validation to run when input happens. Automatic updating of the settings map will not work for such custom components, for obvious reasons, so update the settings map, if needed, in validateContents for this case.

Parameters:
source - The component that the user interacted with (if it can be determined from the event) or null
event - Usually an instance of EventObject, except in the case of DocumentEvent.

valueFrom

protected java.lang.Object valueFrom(java.awt.Component comp)
Given an ad-hoc swing component, fetch the likely value based on its state. The default implementation handles most common swing components. If you are using custom components and have assigned them names, override this method to handle getting an appropriate value out of your custom component and call super for the others.


valueTo

protected void valueTo(java.util.Map settings,
                       java.awt.Component comp)
Given an ad-hoc swing component, set the value as the property from the settings. The default implementation handles most common swing components. If you are using custom components and have assigned them names, override this method to handle getting an appropriate value out of your custom component and call super for the others.


getMapKeyFor

protected java.lang.Object getMapKeyFor(java.awt.Component c)
Get the map key that should be used to automatically put the value represented by this component into the wizard data map.

The default implementation returns the result of c.getName(), which is almost always sufficient and convenient - just set the component names in a GUI builder and everything will be handled.

Returns:
null if the component's value should not be automatically written to the wizard data map, or an object which is the key that later code will use to find this value. By default, it returns the component's name.

validateContents

protected java.lang.String validateContents(java.awt.Component component,
                                            java.lang.Object event)
Called when user interaction has occurred on a component contained by this panel or one of its children. Override this method to check if all of the values are legal, such that the Next/Finish button should be enabled, optionally calling setForwardNavigationMode() if warranted.

This method also may be called with a null argument an effect of calling putWizardData() from someplace other than within this method.

Note that this method may be called very frequently, so it is important that validation code be fast. For cases such as DocumentEvents, it may be desirable to delay validation with a timer, if the implementation of this method is too expensive to call on each keystroke.

Either the component, or the event, or both may be null on some calls to this method (such as when it is called because the settings map has been written to).

The default implementation returns null.

Parameters:
component - The component the user interacted with, if it can be determined. The infrastructure does track the owners of list models and such, and can find the associated component, so this will usually (but not necessarily) be non-null.
event - The event object (if any) that triggered this call to validateContents. For most cases this will be an instance of EventObject, and can be used to directly detect what component the user interacted with. Since javax.swing.text.DocumentEvent is not a subclass of EventObject, the type of the argument is Object, so these events may be passed.
Returns:
A localized string describing why navigation should be disabled, or null if the state of the components is valid and forward navigation should be enabled.

recycle

protected void recycle()
Called if the user is navigating into this panel when it has already been displayed at least once - the user has navigated back to this panel, or back past this panel and is now navigating forward again.

If some of the UI needs to be set up based on values from earlier pages that may have changed, do that here, fetching values from the settings map by calling getWizardData().

The default implementation simply calls validateContents (null, null).


getWizardDataMap

protected java.util.Map getWizardDataMap()
Get the settings map into which the wizard gathers settings. Return value will never be null.


setLongDescription

protected void setLongDescription(java.lang.String desc)
Set the long description of this page. This method may be called only once and should be called from within the constructor.

Parameters:
desc - The long description for this step

getLongDescription

public final java.lang.String getLongDescription()
Get the long description of this page, which should be used in the title area of the wizard's UI if non-null. To use, call setLongDescription() in your WizardPage's constructor. It may be set only once.

Returns:
the description