// Path: src/net/binarymuse/gwt/client/ui/wizard/Wizard.java
// public interface Display extends WidgetDisplay {
//     /**
//      * The {@link Wizard}'s title is handled by an object that implements
//      * GWT's <code>HasHTML</code>.
//      * @return implementation of GWT's <code>HasHTML</code> for the {@link Wizard}'s title
//      */
//     HasHTML getCaption();
//     /**
//      * The {@link Wizard} maintains a list of its pages via an
//      * implementation of {@link HasWizardTitles}.
//      * @return implementation of {@link HasWizardTitles} for the {@link Wizard}'s page titles
//      */
//     HasWizardTitles getPageList();
//     /**
//      * The {@link Wizard}'s button bar is an implementation of
//      * {@link HasWizardButtons}. If you implement your own button
//      * bar, you can remove certain buttons (e.g., "Cancel")
//      * by returning <code>null</code> in their getter functions (e.g.
//      * {@link HasWizardButtons#getCancelButton()}.
//      * @return implementation of {@link HasWizardButtons} for the {@link Wizard}'s button bar
//      */
//     HasWizardButtons getButtonBar();
//     /**
//      * The main content area is implemented with a GWT DeckPanel.
//      * To keep this decision from being forced upon user-created
//      * views, we extend DeckPanel into {@link WizardDeckPanel},
//      * which implements {@link HasIndexedWidgets}. If you use a
//      * panel that doesn't implement GWT's IndexedPanel, you have to
//      * keep track of index-to-Widget relationships yourself,
//      * since {@link Wizard} uses <code>getContent().showWidget(int index)</code>.
//      * @return implementation of {@link HasIndexedWidgets} for the {@link Wizard}'s main content area
//      */
//     HasIndexedWidgets getContent();
//     /**
//      * Returns the Display's {@link HandlerFactory}, which provides
//      * common event handlers for user created {@link Wizard}s and {@link WizardPage}s.
//      * @return the {@link HandlerFactory} for this display
//      */
//     HandlerFactory<Display> getHandlerFactory();
//     /**
//      * Indicate to the view that work is being done. The
//      * default view shows an animated "working" icon.
//      */
//     void startProcessing();
//     /**
//      * Indicate to the view that work is no longer being
//      * done (used after calling {@link #startProcessing()}.
//      */
//     void stopProcessing();
//     /**
//      * {@link Wizard} is a composite that. <code>asWidget()</code>
//      * returns the Widget that the Wizard will wrap using
//      * <code>initWidget</code>.
//      * @return the Widget the {@link Wizard} Composite will wrap
//      */
//     Widget asWidget();
// }
// 
// Path: src/net/binarymuse/gwt/client/ui/wizard/view/HasWizardButtonMethods.java
// public interface HasWizardButtonMethods extends HasClickHandlers {
// 
//     /**
//      * Whether or not the button is enabled.
//      * @return <code>true</code> if enabled, <code>false</code> otherwise
//      */
//     public boolean isEnabled();
//     /**
//      * Set the enabled state of the button.
//      * @param enabled <code>true</code> to enable the button, <code>false</code> to disable it
//      */
//     public void setEnabled(boolean enabled);
//     /**
//      * Whether or not the button is visible.
//      * @return <code>true</code> if visible, <code>false</code> otherwise
//      */
//     public boolean isVisible();
//     /**
//      * Set the visibility of the button.
//      * @param visible <code>true</code> to show the button, <code>false</code> to hide it
//      */
//     public void setVisible(boolean visible);
//     /**
//      * Simulate a click on the button.
//      */
//     public void click();
// 
// }
// 
// Path: src/net/binarymuse/gwt/client/ui/wizard/view/HasWizardButtons.java
// public interface HasWizardButtons {
//     public HasWizardButtonMethods getCancelButton();
//     public HasWizardButtonMethods getFinishButton();
//     public HasWizardButtonMethods getPreviousButton();
//     public HasWizardButtonMethods getNextButton();
// }


import net.binarymuse.gwt.client.ui.wizard.Wizard.Display;
import net.binarymuse.gwt.client.ui.wizard.view.HasWizardButtonMethods;
import net.binarymuse.gwt.client.ui.wizard.view.HasWizardButtons;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
        this.container.setWidth("100%");

        HTML leftSpacer = new HTML("&nbsp;");
        leftSpacer.setWidth("100%");
        this.cancel = new WizardButton(cancelText);
        this.finish = new WizardButton(finishText);
        HTML spacer = new HTML("&nbsp;");
        this.prev = new WizardButton(prevText);
        this.next = new WizardButton(nextText);

        this.container.add(leftSpacer);
        this.container.add(this.cancel);
        this.container.add(this.finish);
        this.container.add(spacer);
        this.container.add(this.prev);
        this.container.add(this.next);

        this.container.setCellWidth(leftSpacer, "100%");
        this.cancel.setWidth("75px");
        this.cancel.setHeight("25px");
        this.finish.setWidth("75px");
        this.finish.setHeight("25px");
        this.container.setCellWidth(spacer, "20px");
        this.prev.setWidth("75px");
        this.prev.setHeight("25px");
        this.next.setWidth("75px");
        this.next.setHeight("25px");
    }

    @Override
// Path: src/net/binarymuse/gwt/client/ui/wizard/Wizard.java
// public interface Display extends WidgetDisplay {
//     /**
//      * The {@link Wizard}'s title is handled by an object that implements
//      * GWT's <code>HasHTML</code>.
//      * @return implementation of GWT's <code>HasHTML</code> for the {@link Wizard}'s title
//      */
//     HasHTML getCaption();
//     /**
//      * The {@link Wizard} maintains a list of its pages via an
//      * implementation of {@link HasWizardTitles}.
//      * @return implementation of {@link HasWizardTitles} for the {@link Wizard}'s page titles
//      */
//     HasWizardTitles getPageList();
//     /**
//      * The {@link Wizard}'s button bar is an implementation of
//      * {@link HasWizardButtons}. If you implement your own button
//      * bar, you can remove certain buttons (e.g., "Cancel")
//      * by returning <code>null</code> in their getter functions (e.g.
//      * {@link HasWizardButtons#getCancelButton()}.
//      * @return implementation of {@link HasWizardButtons} for the {@link Wizard}'s button bar
//      */
//     HasWizardButtons getButtonBar();
//     /**
//      * The main content area is implemented with a GWT DeckPanel.
//      * To keep this decision from being forced upon user-created
//      * views, we extend DeckPanel into {@link WizardDeckPanel},
//      * which implements {@link HasIndexedWidgets}. If you use a
//      * panel that doesn't implement GWT's IndexedPanel, you have to
//      * keep track of index-to-Widget relationships yourself,
//      * since {@link Wizard} uses <code>getContent().showWidget(int index)</code>.
//      * @return implementation of {@link HasIndexedWidgets} for the {@link Wizard}'s main content area
//      */
//     HasIndexedWidgets getContent();
//     /**
//      * Returns the Display's {@link HandlerFactory}, which provides
//      * common event handlers for user created {@link Wizard}s and {@link WizardPage}s.
//      * @return the {@link HandlerFactory} for this display
//      */
//     HandlerFactory<Display> getHandlerFactory();
//     /**
//      * Indicate to the view that work is being done. The
//      * default view shows an animated "working" icon.
//      */
//     void startProcessing();
//     /**
//      * Indicate to the view that work is no longer being
//      * done (used after calling {@link #startProcessing()}.
//      */
//     void stopProcessing();
//     /**
//      * {@link Wizard} is a composite that. <code>asWidget()</code>
//      * returns the Widget that the Wizard will wrap using
//      * <code>initWidget</code>.
//      * @return the Widget the {@link Wizard} Composite will wrap
//      */
//     Widget asWidget();
// }
// 
// Path: src/net/binarymuse/gwt/client/ui/wizard/view/HasWizardButtonMethods.java
// public interface HasWizardButtonMethods extends HasClickHandlers {
// 
//     /**
//      * Whether or not the button is enabled.
//      * @return <code>true</code> if enabled, <code>false</code> otherwise
//      */
//     public boolean isEnabled();
//     /**
//      * Set the enabled state of the button.
//      * @param enabled <code>true</code> to enable the button, <code>false</code> to disable it
//      */
//     public void setEnabled(boolean enabled);
//     /**
//      * Whether or not the button is visible.
//      * @return <code>true</code> if visible, <code>false</code> otherwise
//      */
//     public boolean isVisible();
//     /**
//      * Set the visibility of the button.
//      * @param visible <code>true</code> to show the button, <code>false</code> to hide it
//      */
//     public void setVisible(boolean visible);
//     /**
//      * Simulate a click on the button.
//      */
//     public void click();
// 
// }
// 
// Path: src/net/binarymuse/gwt/client/ui/wizard/view/HasWizardButtons.java
// public interface HasWizardButtons {
//     public HasWizardButtonMethods getCancelButton();
//     public HasWizardButtonMethods getFinishButton();
//     public HasWizardButtonMethods getPreviousButton();
//     public HasWizardButtonMethods getNextButton();
// }


// Path: src/net/binarymuse/gwt/client/ui/wizard/view/widget/WizardNavigationPanel.java
import net.binarymuse.gwt.client.ui.wizard.Wizard.Display;
import net.binarymuse.gwt.client.ui.wizard.view.HasWizardButtonMethods;
import net.binarymuse.gwt.client.ui.wizard.view.HasWizardButtons;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;

        this.container.setWidth("100%");

        HTML leftSpacer = new HTML("&nbsp;");
        leftSpacer.setWidth("100%");
        this.cancel = new WizardButton(cancelText);
        this.finish = new WizardButton(finishText);
        HTML spacer = new HTML("&nbsp;");
        this.prev = new WizardButton(prevText);
        this.next = new WizardButton(nextText);

        this.container.add(leftSpacer);
        this.container.add(this.cancel);
        this.container.add(this.finish);
        this.container.add(spacer);
        this.container.add(this.prev);
        this.container.add(this.next);

        this.container.setCellWidth(leftSpacer, "100%");
        this.cancel.setWidth("75px");
        this.cancel.setHeight("25px");
        this.finish.setWidth("75px");
        this.finish.setHeight("25px");
        this.container.setCellWidth(spacer, "20px");
        this.prev.setWidth("75px");
        this.prev.setHeight("25px");
        this.next.setWidth("75px");
        this.next.setHeight("25px");
    }

    @Override
    public HasWizardButtonMethods getCancelButton() {