Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

JFaces InputDialog

import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.window.*; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**  * This class demonstrates JFace's InputDialog class  */ public class GetInput extends ApplicationWindow {   /**    * GetInput constructor    */   public GetInput() {     super(null);   }   /**    * Runs the application    */   public void run() {     // Don't return from open() until window closes     setBlockOnOpen(true);     // Open the main window     open();     // Dispose the display     Display.getCurrent().dispose();   }   /**    * Configures the shell    *     * @param shell the shell    */   protected void configureShell(Shell shell) {     super.configureShell(shell);     // Set the title bar text     shell.setText("Get Input");   }   /**    * Creates the main window's contents    *     * @param parent the main window    * @return Control    */   protected Control createContents(Composite parent) {     Composite composite = new Composite(parent, SWT.NONE);     composite.setLayout(new GridLayout(1, false));     // Create a label to display what the user typed in     final Label label = new Label(composite, SWT.NONE);     label.setText("This will display the user input from InputDialog");     // Create the button to launch the error dialog     Button show = new Button(composite, SWT.PUSH);     show.setText("Get Input");     show.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         InputDialog dlg = new InputDialog(Display.getCurrent().getActiveShell(),             "", "Enter 5-8 characters", label.getText(), new LengthValidator());         if (dlg.open() == Window.OK) {           // User clicked OK; update the label with the input           label.setText(dlg.getValue());         }       }     });     parent.pack();     return composite;   }   /**    * The application entry point    *     * @param args the command line arguments    */   public static void main(String[] args) {     new GetInput().run();   } } /**  * This class validates a String. It makes sure that the String is between 5 and 8  * characters  */ class LengthValidator implements IInputValidator {   /**    * Validates the String. Returns null for no error, or an error message    *     * @param newText the String to validate    * @return String    */   public String isValid(String newText) {     int len = newText.length();     // Determine if input is too short or too long     if (len < 5) return "Too short";     if (len > 8) return "Too long";     // Input must be OK     return null;   } }