/******************************************************************************* * Copyright (c) 2004, 2005 Sybase, Inc. 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: Sybase, * Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.jst.jsf.facesconfig.ui.wizard; import org.eclipse.jface.viewers.ColumnPixelData; import org.eclipse.jface.viewers.TableLayout; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.jst.jsf.common.ui.internal.guiutils.SWTUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; /** * Common wizard page used to summarize information entered in previous pages. * * @author plevin * @version 1.0 */ public class SummaryPage extends WizardPage { private static final String WIZARD_SUMMARY_PAGE = "WizardSummaryPage"; //$NON-NLS-1$ /** The source of the summary items */ private ISummaryDataSource source; /** The table control that displays the summary items */ private Table table; /** * This Constructor creates the summary page */ public SummaryPage() { super( WIZARD_SUMMARY_PAGE ); setTitle( WizardMessages.WizardSummaryPage_Title_WizardSummary ); setDescription( WizardMessages.WizardSummaryPage_Summary_SummaryDesc ); } /** * This Constructor initializes the data source. * * @param source - * Summary data source */ public SummaryPage( ISummaryDataSource source ) { this(); this.source = source; } /** * Determines if the wizard can enable the Next button * * @return boolean - the state of the Next button */ public boolean canFlipToNextPage() { return false; } /** * Creates the page controls * * @param parent - * the wizard composite */ public void createControl( Composite parent ) { Composite composite = SWTUtils.createComposite( parent, 1 ); table = new Table( composite, SWT.BORDER ); table.setLayoutData( new GridData( GridData.FILL_BOTH ) ); table.setHeaderVisible( true ); table.setLinesVisible( true ); TableLayout layout = new TableLayout(); table.setLayout( layout ); layout.addColumnData( new ColumnPixelData( 163 ) ); layout.addColumnData( new ColumnPixelData( 350 ) ); TableColumn keyCol = new TableColumn( table, SWT.NONE ); keyCol.setText( WizardMessages.WizardSummaryPage_Label_Field ); TableColumn valueCol = new TableColumn( table, SWT.NONE ); valueCol .setText( WizardMessages.WizardSummaryPage_Label_Value ); setControl( composite ); setPageComplete( true ); } /** * Populates the table with summary information. */ public void loadSummaryData() { if ( source == null ) { return; } Object[] data = source.getSummaryData().toArray(); table.removeAll(); for ( int i = 0; i < data.length; i++ ) { TableItem item = new TableItem( table, SWT.NONE ); item.setText( (String[]) data[i] ); } return; } /** * Sets summary page data source. * * @param s - * Data source. */ public void setSummaryDataSource( ISummaryDataSource s ) { source = s; } /** * Populates the table with summary items when the page becomes visible. * * @param visible - * the visible state of the page */ public void setVisible( boolean visible ) { super.setVisible( visible ); if ( visible == true ) { loadSummaryData(); } } }