//------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 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 implementation //------------------------------------------------------------------------------ package org.eclipse.epf.ui.wizards; import org.eclipse.epf.ui.util.SWTUtil; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.text.TextViewer; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; /** * The abstract base class for all EPF wizard pages. * * @author Kelvin Low * @author Bingxue Xu * @since 1.0 */ public abstract class BaseWizardPage extends WizardPage { /** * Creates a new instance. * * @param pageName * the wizard page name */ protected BaseWizardPage(String pageName) { super(pageName); } /** * Creates a new instance. * * @param name * the wizard page name * @param title * the wizard page title * @param description * the wizard page description * @param titleImage * the wizard page title image */ public BaseWizardPage(String pageName, String title, String description, ImageDescriptor titleImage) { super(pageName, title, titleImage); setDescription(description); } public void setVisible(boolean visible) { super.setVisible(visible); onEnterPage(null); } /** * Called when entering this wizard page. * * @param obj * a data initialization object */ public void onEnterPage(Object obj) { } /** * @see org.eclipse.jface.wizard.WizardPage#getNextPage() */ public IWizardPage getNextPage() { IWizardPage nextPage = super.getNextPage(); if (nextPage != null && nextPage instanceof BaseWizardPage) { try { ((BaseWizardPage) nextPage).onEnterPage(getNextPageData()); } catch (Exception e) { } } return nextPage; } /** * Gets the data initialization object for the next wizard page. * * @return an <code>Object</code> */ public Object getNextPageData() { return null; } /** * Creates a composite with a grid layout. * * @param parent * the parent composite * @param column * the number of column cells that the composite will take up * @return a <code>Composite</code> object */ protected static Composite createGridLayoutComposite(Composite parent, int column) { return SWTUtil.createGridLayoutComposite(parent, column); } /** * Creates a child composite with a grid layout. * <p> * The child composite will be indented from the parent composite. * * @param parent * the parent composite * @param column * the number of column cells that the composite will take up * @return a <code>Composite</code> object */ protected static Composite createChildGridLayoutComposite(Composite parent, int column) { return SWTUtil.createChildGridLayoutComposite(parent, column); } /** * Creates a group with a grid layout. * * @param parent * the parent composite * @param text * the text for the group * @param column * the number of column cells that the group will take up * @return a <code>Group</code> object */ protected static Group createGridLayoutGroup(Composite parent, String text, int column) { return SWTUtil.createGridLayoutGroup(parent, text, column); } /** * Creates a group with a grid layout. * * @param parent * the parent composite * @param text * the text for the group * @param column * the number of column cells that the group will take up * @param equalColumnWidth * flag to indicate whether column cells should be same width or * not * @return a <code>Group</code> object */ protected static Group createGridLayoutGroup(Composite parent, String text, int column, boolean equalColumnWidth) { return SWTUtil.createGridLayoutGroup(parent, text, column, equalColumnWidth); } /** * Creates a label. * * @param parent * the parent composite * @param text * the text for the label * @param column * the number of column cells that the label will take up * @return a <code>Label</code> object */ protected static Label createLabel(Composite parent, String text, int column) { return SWTUtil.createLabel(parent, text, column); } /** * Creates a label that only takes up one column cell. * * @param parent * the parent composite * @param text * the text for the label * @return a <code>Label</code> object */ protected static Label createLabel(Composite parent, String text) { return SWTUtil.createLabel(parent, text); } /** * Creates a vertically aligned label that only takes up one column cell. * * @param parent * the parent composite * @param text * the text for the label * @return a <code>Label</code> object */ protected static Label createVerticallyAlignedLabel(Composite parent, String text) { return SWTUtil.createVerticallyAlignedLabel(parent, text); } /** * Creates an editable text control. * * @param parent * the parent composite * @param defaultText * the default text for the control * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent, String defaultText, int widthHint, int heightHint, int column) { return SWTUtil.createEditableText(parent, defaultText, widthHint, heightHint, column); } /** * Creates an editable text control. * * @param parent * the parent composite * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ public static Text createEditableText(Composite parent, int widthHint, int heightHint, int column) { return SWTUtil .createEditableText(parent, widthHint, heightHint, column); } /** * Creates a readonly text control. * * @param parent * the parent composite * @param defaultText * the default text for the control * @param widthHint * the preferred width (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createText(Composite parent, String defaultText, int widthHint, int column) { return SWTUtil.createText(parent, defaultText, widthHint, column); } /** * Creates an readonly text control that only takes up one column cell. * * @param parent * the parent composite * @param defaultText * the default text for the control * @return a <code>Text</code> object */ protected static Text createText(Composite parent, String defaultText) { return SWTUtil.createText(parent, defaultText); } /** * Creates an editable text control. * * @param parent * the parent composite * @param defaultText * the default text for the control * @param widthHint * the preferred width (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent, String defaultText, int widthHint, int column) { return SWTUtil.createEditableText(parent, defaultText, widthHint, column); } /** * Creates an editable text control. * * @param parent * the parent composite * @param defaultText * the default text for the control * @param widthHint * the preferred width (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent, String defaultText, int widthHint) { return SWTUtil.createEditableText(parent, defaultText, widthHint); } /** * Creates an editable text control. * * @param parent * the parent composite * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent, int column) { return SWTUtil.createEditableText(parent, column); } /** * Creates an editable text control that only takes up one column cell. * * @param parent * the parent composite * @param defaultText * the default text for the control * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent, String defaultText) { return SWTUtil.createEditableText(parent, defaultText); } /** * Creates an empty editable text control that only takes up one column * cell. * * @param parent * the parent composite * @param defaultText * the default text for the control * @return a <code>Text</code> object */ protected static Text createEditableText(Composite parent) { return SWTUtil.createEditableText(parent); } /** * Creates a readonly multi-line text control. * * @param parent * the parent composite * @param defaultText * the default text for the control * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>Text</code> object */ protected static Text createMultiLineText(Composite parent, String defaultText, int widthHint, int heightHint, int column) { return SWTUtil.createMultiLineText(parent, defaultText, widthHint, heightHint, column); } /** * Creates an combobox. * * @param parent * the parent composite * @param column * the number of column cells that the control will take up * @return a <code>Combo</code> object */ protected static Combo createCombobox(Composite parent, int column) { return SWTUtil.createCombobox(parent, column); } /** * Creates an combobox with readonly style. * * @param parent * the parent composite * @param column * the number of column cells that the control will take up * @return a <code>Combo</code> object */ protected static Combo createReadOnlyCombobox(Composite parent, int column) { return SWTUtil.createReadOnlyCombobox(parent, column); } /** * Creates an combobox that only takes up one column cell. * * @param parent * the parent composite * @return a <code>Combo</code> object */ protected static Combo createCombobox(Composite parent) { return SWTUtil.createCombobox(parent); } /** * Creates a button. * * @param parent * the parent composite * @param text * the text for the control * @return a <code>Button</code> object */ protected static Button createButton(Composite parent, String text) { return SWTUtil.createButton(parent, text); } /** * Creates a checkbox. * * @param parent * the parent composite * @param text * the text for the control * @param column * the number of column cells that the control will take up * @return a <code>Button</code> object */ protected static Button createCheckbox(Composite parent, String text, int column) { return SWTUtil.createCheckbox(parent, text, column); } /** * Creates a checkbox that only takes up one column cell. * * @param parent * the parent composite * @param text * the text for the control * @return a <code>Button</code> object */ protected static Button createCheckbox(Composite parent, String text) { return SWTUtil.createCheckbox(parent, text); } /** * Creates an radio button. * * @param parent * the parent composite * @param text * the text for the control * @param column * the number of column cells that the control will take up * @param selected * if <code>true</code>, select the radio button by default * @return a <code>Button</code> object */ protected static Button createRadioButton(Composite parent, String text, int column, boolean selected) { return SWTUtil.createRadioButton(parent, text, column, selected); } /** * Creates an radio button that only takes up one column cell. * * @param parent * the parent composite * @param text * the text for the control * @return a <code>Button</code> object */ protected static Button createRadioButton(Composite parent, String text) { return SWTUtil.createRadioButton(parent, text); } /** * Creates a readonly text viewer. * * @param parent * the parent composite * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>TextViewer</code> object */ protected static TextViewer createTextViewer(Composite parent, int widthHint, int heightHint, int column) { return SWTUtil.createTextViewer(parent, widthHint, heightHint, column); } /** * Creates a readonly text viewer that only takes up one column cell. * * @param parent * the parent composite * @return a <code>TextViewer</code> object */ protected static TextViewer createTextViewer(Composite parent) { return SWTUtil.createTextViewer(parent); } /** * Creates a table viewer. * * @param parent * the parent composite * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>TableViewer</code> object */ protected static TableViewer createTableViewer(Composite parent, int widthHint, int heightHint, int column) { return SWTUtil.createTableViewer(parent, widthHint, heightHint, column); } /** * Creates a checkbox table viewer. * * @param parent * the parent composite * @param widthHint * the preferred width (in pixels) for the control * @param heightHint * the preferred height (in pixels) for the control * @param column * the number of column cells that the control will take up * @return a <code>CheckboxTableViewer</code> object */ protected static CheckboxTableViewer createCheckboxTableViewer( Composite parent, int widthHint, int heightHint, int column) { return SWTUtil.createCheckboxTableViewer(parent, widthHint, heightHint, column); } /** * Creates a checkbox table viewer. * * @param parent * the parent composite * @param column * the number of column cells that the control will take up * @return a <code>CheckboxTableViewer</code> object */ protected static CheckboxTableViewer createCheckboxTableViewer( Composite parent, int column) { return SWTUtil.createCheckboxTableViewer(parent, 360, 175, column); } /** * Creates a line. * * @param parent * the parent composite * @param column * the number of column cells that the line will take up * @return a <code>Label</code> object */ protected static Label createLine(Composite parent, int column) { return SWTUtil.createLine(parent, column); } /** * Checks whether a text control has some text. * * @param control * the text control * @return <code>true</code> if the text control has some text, * <code>false</code> otherwise */ protected static boolean isNonEmptyText(Text control) { return SWTUtil.isNonEmptyText(control); } }