Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

A survey using a wizard

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);   } }