SWT Jface Eclipse Java

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.jface.dialogs.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import java.io.*;
/**
 * This class demonstrates JFace's TitleAreaDialog class
 */
public class ShowMyTitleAreaDialog extends ApplicationWindow {
  /**
   * ShowCustomDialog constructor
   */
  public ShowMyTitleAreaDialog() {
    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();
  }
  /**
   * 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, true));
    // Create the button
    Button show = new Button(composite, SWT.NONE);
    show.setText("Show");
    final Shell shell = parent.getShell();
    // Display the TitleAreaDialog
    show.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        // Create and show the dialog
        MyTitleAreaDialog dlg = new MyTitleAreaDialog(shell);
        dlg.open();
      }
    });
    parent.pack();
    return composite;
  }
  /**
   * The application entry point
   * 
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    new ShowMyTitleAreaDialog().run();
  }
}
/**
 * This class shows an about box, based on TitleAreaDialog
 */
class MyTitleAreaDialog extends TitleAreaDialog {
  // The image to display
  private Image image;
  /**
   * MyTitleAreaDialog constructor
   * 
   * @param shell the parent shell
   */
  public MyTitleAreaDialog(Shell shell) {
    super(shell);
    // Create the image
    try {
      image = new Image(null, new FileInputStream("rntsoft.gif"));
    } catch (FileNotFoundException e) {
      // Ignore
    }
  }
  /**
   * Closes the dialog box Override so we can dispose the image we created
   */
  public boolean close() {
    if (image != null) image.dispose();
    return super.close();
  }
  /**
   * Creates the dialog's contents
   * 
   * @param parent the parent composite
   * @return Control
   */
  protected Control createContents(Composite parent) {
    Control contents = super.createContents(parent);
    // Set the title
    setTitle("About This Application");
    // Set the message
    setMessage("This is a JFace dialog", IMessageProvider.INFORMATION);
    // Set the image
    if (image != null) setTitleImage(image);
    return contents;
  }
  /**
   * Creates the gray area
   * 
   * @param parent the parent composite
   * @return Control
   */
  protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    // Create a table
    Table table = new Table(composite, SWT.FULL_SELECTION | SWT.BORDER);
    table.setLayoutData(new GridData(GridData.FILL_BOTH));
    // Create two columns and show
    TableColumn one = new TableColumn(table, SWT.LEFT);
    one.setText("Real Name");
    TableColumn two = new TableColumn(table, SWT.LEFT);
    two.setText("Preferred Name");
    table.setHeaderVisible(true);
    // Add some data
    TableItem item = new TableItem(table, SWT.NONE);
    item.setText(0, "Robert Harris");
    item.setText(1, "Bobby");
    item = new TableItem(table, SWT.NONE);
    item.setText(0, "Robert Warner");
    item.setText(1, "Rob");
    item = new TableItem(table, SWT.NONE);
    item.setText(0, "Gabor Liptak");
    item.setText(1, "Gabor");
    one.pack();
    two.pack();
    return composite;
  }
  /**
   * Creates the buttons for the button bar
   * 
   * @param parent the parent composite
   */
  protected void createButtonsForButtonBar(Composite parent) {
    createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
  }
}