SWT Jface Eclipse Java

/**
  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.
 * 


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