title: How to make fields mandatory in SWT dialogue?
body: <p>I want to design a password dialogue box using SWT and I am able to achieve this using below code but I also want to make both the fields mandatory and I am not able to understand how to include this functionality in below code. Please help me.</p>
  
  <pre><code>import org.eclipse.jface.dialogs.*;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.*;
  import org.eclipse.swt.graphics.Point;
  import org.eclipse.swt.layout.*;
  import org.eclipse.swt.widgets.*;
  
  public class PasswordDialog extends Dialog {
      private Text txtUser;
      private Text txtPassword;
      private String user = "";
      private String password = "";
  
      public PasswordDialog(Shell parentShell) {
          super(parentShell);
      }
  
      @Override
      protected Control createDialogArea(Composite parent) {
          Composite container = (Composite) super.createDialogArea(parent);
          GridLayout layout = new GridLayout(2, false);
          layout.marginRight = 5;
          layout.marginLeft = 10;
          container.setLayout(layout);
  
          Label lblUser = new Label(container, SWT.NONE);
          lblUser.setText("User:");
  
          txtUser = new Text(container, SWT.BORDER);
          txtUser.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
          txtUser.setText(user);
          txtUser.addModifyListener(new ModifyListener() {
  
              @Override
              public void modifyText(ModifyEvent e) {
                  Text textWidget = (Text) e.getSource();
                  String userText = textWidget.getText();
                  user = userText;
              }
          });
  
          Label lblPassword = new Label(container, SWT.NONE);
          GridData gd_lblNewLabel = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
          gd_lblNewLabel.horizontalIndent = 1;
          lblPassword.setLayoutData(gd_lblNewLabel);
          lblPassword.setText("Password:");
  
          txtPassword = new Text(container, SWT.BORDER| SWT.PASSWORD);
          txtPassword.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
          txtPassword.setText(password);
          txtPassword.addModifyListener(new ModifyListener() {
  
              @Override
              public void modifyText(ModifyEvent e) {
                  Text textWidget = (Text) e.getSource();
                  String passwordText = textWidget.getText();
                  password = passwordText;
              }
          });
          return container;
      }
  
      // override method to use "Login" as label for the OK button
      @Override
      protected void createButtonsForButtonBar(Composite parent) {
          createButton(parent, IDialogConstants.OK_ID, "Login", true);
          createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
      }
  
      @Override
      protected Point getInitialSize() {
           return new Point(450, 300);
      }
  
      @Override
      protected void okPressed() {
          user = txtUser.getText();
          password = txtPassword.getText();
          super.okPressed();
      }
  
      public String getUser() {
          return user;
      }
  
      public void setUser(String user) {
          this.user = user;
      }
  
      public String getPassword() {
          return password;
      }
  
      public void setPassword(String password) {
          this.password = password;
      }
  
  }
  </code></pre>