All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wicket.extensions.wizard.IWizardModel Maven / Gradle / Ivy

There is a newer version: 1.2.7
Show newest version
/*
 * $Id: org.eclipse.jdt.ui.prefs 5004 2006-03-17 20:47:08 -0800 (Fri, 17 Mar
 * 2006) eelco12 $ $Revision: 5004 $ $Date: 2006-03-17 20:47:08 -0800 (Fri, 17
 * Mar 2006) $
 * 
 * ==============================================================================
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package wicket.extensions.wizard;

import java.io.Serializable;
import java.util.Iterator;


/**
 * This interface defines the model for wizards. This model knows about the
 * wizard's steps and the transitions between them, and it holds a reference to
 * the currently active step. It might function as a generic state holder for
 * the wizard too, though you might find it more convenient to use the wizard
 * component itself for that, or even an external model.
 * 
 * 

* {@link IWizardModelListener wizard model listeners} can be registered to be * notified of important events (changing the active step) using the * {@link #addListener(IWizardModelListener) add listener} method. *

* *

* Typically, you would use * {@link WizardModel the default implementation of this interface}, but if you * need to do more sophisticated stuff, like branching etc, you can consider * creating your own implementation. *

* *

* Swing Wizard Framework * served as a valuable source of inspiration. *

* * @see WizardModel * * @author Eelco Hillenius */ public interface IWizardModel extends Serializable { /** * Adds a wizard model listener. * * @param listener * The wizard model listener to add */ void addListener(IWizardModelListener listener); /** * Cancels further processing. Implementations may clean up and reset the * model. Implementations should notify the registered * {@link IWizardModelListener#onCancel() model listeners}. */ void cancel(); /** * Instructs the wizard to finish succesfully. Typically, implementations * check whether this option is available at all. Implementations may clean * up and reset the model. Implementations should notify the registered * {@link IWizardModelListener#onFinish() model listeners}. */ void finish(); /** * Gets the current active step the wizard should display. * * @return the active step. */ IWizardStep getActiveStep(); /** * Gets whether the cancel button should be displayed. * * @return True if the cancel button should be displayed */ boolean isCancelVisible(); /** * Checks if the last button should be enabled. * * @return true if the last button should be enabled, * false otherwise. * @see #isLastVisible */ boolean isLastAvailable(); /** * Gets whether the specified step is the last step in the wizard. * * @param step * the step to check * @return True if its the final step in the wizard, false< otherwise. */ boolean isLastStep(IWizardStep step); /** * Gets whether the last button should be displayed. This method should only * return true if the {@link #isLastAvailable} will return true at any * point. Returning false will prevent the last button from appearing on the * wizard at all. * * @return True if the last button should be displayed, False otherwise. */ boolean isLastVisible(); /** * Gets whether the next button should be enabled. * * @return True if the next button should be enabled, false otherwise. */ boolean isNextAvailable(); /** * Gets whether the previous button should be enabled. * * @return True if the previous button should be enabled, false otherwise. */ boolean isPreviousAvailable(); /** * Takes the model to the last step in the wizard. This method must only be * called if {@link #isLastAvailable} returns true. */ void lastStep(); /** * Increments the model the the next step. This method must only be called * if {@link #isNextAvailable} returns true. */ void next(); /** * Takes the model to the previous step.This method must only be called if * {@link #isPreviousAvailable} returns true. */ void previous(); /** * Removes a wizard model listener. * * @param listener * The listener to remove */ void removeListener(IWizardModelListener listener); /** * Resets the model, setting it to the first step. */ void reset(); /** * Returns an iterator over all the steps in the model. The iteration order * is not guarenteed to the be the order of traversal. * * @return an iterator over all the steps of the model */ Iterator stepIterator(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy