Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

TextField Example 4

/**   The following code is from Michael Schmidt(MichaelMSchmidt (at) msn.com).      The code is published under BSD license.      Thanks for the input from Michael Schmidt. */ package TextTest; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; /**  * This is a revision of TextFieldExample4.  Two modifications have been made.  * First, a Text value (ABC) has been added to the text2 field, simply for   * demonstration purposes.  Second, a mouseDown() listener has been added to   * text2.  Note that in the original sample, text2 would not highlight (perform  * the selectAll() operation) when it gained focus with the mouse.  This is   * because clicking on the field invokes gainFocus() followed by mouseDown(),   * and mouseDown() does a clearSelection(), negating the selectAll() done in   * the gainFocus() method.  You can test this by simply commenting out the   * addMouseListener code.  * <p>  * Other modifications are possible.  The Text field may be designated   * read-only to prevent editing and erasing of the field when the tab key is   * used to move through the widgets.  Logic can also be used to do a selectAll()  * when you first click on the field and then place the I-beam cursor if the   * mouse is clicked again.   *   * @author Michael Schmidt  *  */ public class TextFieldExample4Revised {   Display d;   Shell s;   TextFieldExample4Revised() {     d = new Display();     s = new Shell(d);     s.setSize(250, 250);     s.setText("A Text Field Example");     Text text1 = new Text(s, SWT.WRAP | SWT.BORDER);     text1.setBounds(100, 50, 100, 20);     text1.setTextLimit(5);     text1.setText("12345");     Text text2 = new Text(s, SWT.SINGLE | SWT.BORDER);     text2.setBounds(100, 75, 100, 20);     text2.setTextLimit(30);     text2.setText("ABC");     // add a focus listener     FocusListener focusListener = new FocusListener() {       public void focusGained(FocusEvent e) {         Text t = (Text) e.widget;         t.selectAll();       }       public void focusLost(FocusEvent e) {         Text t = (Text) e.widget;         if (t.getSelectionCount() > 0) {           t.clearSelection();         }       }     };     text1.addFocusListener(focusListener);     text2.addFocusListener(focusListener);          //  Added code - comment out to test without the mouseListener    text2.addMouseListener(new MouseAdapter() {     public void mouseDown(final MouseEvent e) {       Text t = (Text) e.widget;       t.selectAll();     }   });     // End of added code         s.open();     while (!s.isDisposed()) {       if (!d.readAndDispatch())         d.sleep();     }     d.dispose();   }   public static void main(String[] arg) {     new TextFieldExample4Revised();   } } //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class TextFieldExample4 {   Display d;   Shell s;   TextFieldExample4() {     d = new Display();     s = new Shell(d);     s.setSize(250, 250);     s.setText("A Text Field Example");     Text text1 = new Text(s, SWT.WRAP | SWT.BORDER);     text1.setBounds(100, 50, 100, 20);     text1.setTextLimit(5);     text1.setText("12345");     Text text2 = new Text(s, SWT.SINGLE | SWT.BORDER);     text2.setBounds(100, 75, 100, 20);     text2.setTextLimit(30);     // add a focus listener     FocusListener focusListener = new FocusListener() {       public void focusGained(FocusEvent e) {         Text t = (Text) e.widget;         t.selectAll();       }       public void focusLost(FocusEvent e) {         Text t = (Text) e.widget;         if (t.getSelectionCount() > 0) {           t.clearSelection();         }       }     };     text1.addFocusListener(focusListener);     text2.addFocusListener(focusListener);     s.open();     while (!s.isDisposed()) {       if (!d.readAndDispatch())         d.sleep();     }     d.dispose();   }   public static void main(String[] arg) {     new TextFieldExample4();   } }