Java tutorial
import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; /** * This class displays a survey using a wizard */ public class Survey { /** * Runs the application */ public void run() { Display display = new Display(); // Create the parent shell for the dialog, but don't show it Shell shell = new Shell(display); // Create the dialog WizardDialog dlg = new WizardDialog(shell, new SurveyWizard()); dlg.open(); // Dispose the display display.dispose(); } /** * The application entry point * * @param args * the command line arguments */ public static void main(String[] args) { new Survey().run(); } } /** * This class shows a satisfaction survey */ class SurveyWizard extends Wizard { public SurveyWizard() { // Add the pages addPage(new ComplaintsPage()); addPage(new MoreInformationPage()); addPage(new ThanksPage()); } /** * Called when user clicks Finish * * @return boolean */ public boolean performFinish() { // Dismiss the wizard return true; } } /** * This class determines if the user has complaints. If not, it jumps to the last * page of the wizard */ class ComplaintsPage extends WizardPage { private Button yes; private Button no; /** * ComplaintsPage constructor */ public ComplaintsPage() { super("Complaints"); } /** * Creates the page controls */ public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(2, true)); new Label(composite, SWT.LEFT).setText("Do you have complaints?"); Composite yesNo = new Composite(composite, SWT.NONE); yesNo.setLayout(new FillLayout(SWT.VERTICAL)); yes = new Button(yesNo, SWT.RADIO); yes.setText("Yes"); no = new Button(yesNo, SWT.RADIO); no.setText("No"); setControl(composite); } public IWizardPage getNextPage() { // If they have complaints, go to the normal next page if (yes.getSelection()) { return super.getNextPage(); } // No complaints? Short-circuit the rest of the pages return getWizard().getPage("Thanks"); } } /** * This page gathers more information about the complaint */ class MoreInformationPage extends WizardPage { /** * MoreInformationPage constructor */ public MoreInformationPage() { super("More Info"); } /** * Creates the controls for this page */ public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(1, false)); new Label(composite, SWT.LEFT).setText("Please enter your complaints"); Text text = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL); text.setLayoutData(new GridData(GridData.FILL_BOTH)); setControl(composite); } } /** * This page thanks the user for taking the survey */ class ThanksPage extends WizardPage { /** * ThanksPage constructor */ public ThanksPage() { super("Thanks"); } /** * Creates the controls for this page */ public void createControl(Composite parent) { Label label = new Label(parent, SWT.CENTER); label.setText("Thanks!"); setControl(label); } }