Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

How to create your own dialog classes

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.com) //Robert Harris (rbrt_harris@yahoo.com) import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**  * This class demonstrates how to create your own dialog classes. It allows users  * to input a String  */ public class InputDialog extends Dialog {   private String message;   private String input;   /**    * InputDialog constructor    *     * @param parent the parent    */   public InputDialog(Shell parent) {     // Pass the default styles here     this(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);   }   /**    * InputDialog constructor    *     * @param parent the parent    * @param style the style    */   public InputDialog(Shell parent, int style) {     // Let users override the default styles     super(parent, style);     setText("Input Dialog");     setMessage("Please enter a value:");   }   /**    * Gets the message    *     * @return String    */   public String getMessage() {     return message;   }   /**    * Sets the message    *     * @param message the new message    */   public void setMessage(String message) {     this.message = message;   }   /**    * Gets the input    *     * @return String    */   public String getInput() {     return input;   }   /**    * Sets the input    *     * @param input the new input    */   public void setInput(String input) {     this.input = input;   }   /**    * Opens the dialog and returns the input    *     * @return String    */   public String open() {     // Create the dialog window     Shell shell = new Shell(getParent(), getStyle());     shell.setText(getText());     createContents(shell);     shell.pack();     shell.open();     Display display = getParent().getDisplay();     while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         display.sleep();       }     }     // Return the entered value, or null     return input;   }   /**    * Creates the dialog's contents    *     * @param shell the dialog window    */   private void createContents(final Shell shell) {     shell.setLayout(new GridLayout(2, true));     // Show the message     Label label = new Label(shell, SWT.NONE);     label.setText(message);     GridData data = new GridData();     data.horizontalSpan = 2;     label.setLayoutData(data);     // Display the input box     final Text text = new Text(shell, SWT.BORDER);     data = new GridData(GridData.FILL_HORIZONTAL);     data.horizontalSpan = 2;     text.setLayoutData(data);     // Create the OK button and add a handler     // so that pressing it will set input     // to the entered value     Button ok = new Button(shell, SWT.PUSH);     ok.setText("OK");     data = new GridData(GridData.FILL_HORIZONTAL);     ok.setLayoutData(data);     ok.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         input = text.getText();         shell.close();       }     });     // Create the cancel button and add a handler     // so that pressing it will set input to null     Button cancel = new Button(shell, SWT.PUSH);     cancel.setText("Cancel");     data = new GridData(GridData.FILL_HORIZONTAL);     cancel.setLayoutData(data);     cancel.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         input = null;         shell.close();       }     });     // Set the OK button as the default, so     // user can type input and press Enter     // to dismiss     shell.setDefaultButton(ok);   } }