| /******************************************************************************* |
| * Copyright (c) 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.command.internal.env.ui.widgets; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.jface.wizard.IWizardPage; |
| import org.eclipse.jface.wizard.WizardPage; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Event; |
| import org.eclipse.swt.widgets.Listener; |
| import org.eclipse.wst.command.internal.provisional.env.core.common.Status; |
| |
| |
| |
| public class SimpleWizardPage extends WizardPage implements PageWizardDataEvents |
| { |
| private WidgetContributor widget_; |
| private WidgetDataEvents dataEvents_; |
| private Listener statusListener_; |
| protected WizardPageManager pageManager_; |
| |
| public SimpleWizardPage( PageInfo pageInfo, WizardPageManager pageManager ) |
| { |
| super( "" ); |
| |
| setTitle( pageInfo.getPageName() ); |
| setDescription( pageInfo.getPageTitle()); |
| |
| widget_ = pageInfo.getWidgetFactory().create(); |
| statusListener_ = new StatusListener(); |
| pageManager_ = pageManager; |
| } |
| |
| public void createControl( Composite parent ) |
| { |
| Composite control = new Composite( parent, SWT.NONE ); |
| control.setLayout( new GridLayout() ); |
| control.setLayoutData( new GridData( GridData.FILL_BOTH )); |
| |
| dataEvents_ = widget_.addControls( control, statusListener_ ); |
| |
| org.eclipse.jface.dialogs.Dialog.applyDialogFont(control); |
| setControl( control ); |
| } |
| |
| public WidgetDataEvents getDataEvents() |
| { |
| return dataEvents_; |
| } |
| |
| public void validatePageToStatus() |
| { |
| Status status = widget_.getStatus(); |
| |
| if( status != null ) |
| { |
| if( status.getSeverity() == Status.ERROR ) |
| { |
| String message = status.getMessage(); |
| |
| if( message.length() == 0 ) |
| { |
| setErrorMessage( null ); |
| setMessage( getDescription() ); |
| } |
| else |
| { |
| setErrorMessage( message ); |
| } |
| |
| setPageComplete( false ); |
| } |
| else if (status.getSeverity() == Status.WARNING ) |
| { |
| setErrorMessage( null ); |
| setMessage(status.getMessage(), IStatus.WARNING ); |
| setPageComplete( true ); |
| } |
| else if( status.getSeverity() == Status.INFO ) |
| { |
| setErrorMessage( null ); |
| setMessage( status.getMessage(), IStatus.INFO ); |
| setPageComplete( true ); |
| } |
| else |
| { |
| setErrorMessage( null ); |
| setMessage( getDescription() ); |
| setPageComplete( true ); |
| } |
| } |
| else |
| { |
| setErrorMessage( null ); |
| setMessage( getDescription() ); |
| setPageComplete( true ); |
| } |
| |
| getContainer().updateButtons(); |
| } |
| |
| public boolean canFlipToNextPage() |
| { |
| return isPageComplete() && pageManager_.hasNextPage(); |
| } |
| |
| public IWizardPage getNextPage() |
| { |
| return pageManager_.getNextPage(); |
| } |
| |
| public void setVisible(boolean value) |
| { |
| pageManager_.handlePageVisible( this, value ); |
| |
| super.setVisible(value); |
| } |
| |
| private class StatusListener implements Listener |
| { |
| public void handleEvent( Event evt ) |
| { |
| validatePageToStatus(); |
| } |
| } |
| } |