SWT Jface Eclipse Java

//Send questions, comments, bug reports, etc. to the authors:
//Rob Warner (rwarner@interspatial.com)
//Robert Harris (rbrt_harris@yahoo.com)
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
/**
 * This class demonstrates menus
 */
public class Menus {
  private Image star;
  private Image circle;
  private Image square;
  private Image triangle;
  /**
   * Runs the application
   */
  public void run() {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Menus");
    createContents(shell);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    if (circle != null) circle.dispose();
    if (star != null) star.dispose();
    if (square != null) square.dispose();
    if (triangle != null) triangle.dispose();
    display.dispose();
  }
  /**
   * Creates the main window's contents
   * 
   * @param shell the main window
   */
  private void createContents(Shell shell) {
    shell.setLayout(new FillLayout());
    createBarMenu(shell);
    createPopUpMenu(shell);
    createNoRadioGroupPopUpMenu(shell);
  }
  /**
   * Creates the bar menu for the main window
   * 
   * @param shell the main window
   */
  private void createBarMenu(Shell shell) {
    // Create the bar menu
    Menu menu = new Menu(shell, SWT.BAR);
    // Create all the items in the bar menu
    MenuItem fileItem = new MenuItem(menu, SWT.CASCADE);
    fileItem.setText("File");
    MenuItem editItem = new MenuItem(menu, SWT.CASCADE);
    editItem.setText("Edit");
    MenuItem formatItem = new MenuItem(menu, SWT.CASCADE);
    formatItem.setText("Format");
    MenuItem viewItem = new MenuItem(menu, SWT.CASCADE);
    viewItem.setText("View");
    MenuItem helpItem = new MenuItem(menu, SWT.CASCADE);
    helpItem.setText("Help");
    // Create the File item's dropdown menu
    Menu fileMenu = new Menu(menu);
    fileItem.setMenu(fileMenu);
    // Create all the items in the File dropdown menu
    MenuItem newItem = new MenuItem(fileMenu, SWT.NONE);
    newItem.setText("New");
    MenuItem openItem = new MenuItem(fileMenu, SWT.NONE);
    openItem.setText("Open...");
    MenuItem saveItem = new MenuItem(fileMenu, SWT.NONE);
    saveItem.setText("Save");
    MenuItem saveAsItem = new MenuItem(fileMenu, SWT.NONE);
    saveAsItem.setText("Save As...");
    new MenuItem(fileMenu, SWT.SEPARATOR);
    MenuItem pageSetupItem = new MenuItem(fileMenu, SWT.NONE);
    pageSetupItem.setText("Page Setup...");
    MenuItem printItem = new MenuItem(fileMenu, SWT.NONE);
    printItem.setText("Print...");
    new MenuItem(fileMenu, SWT.SEPARATOR);
    MenuItem exitItem = new MenuItem(fileMenu, SWT.NONE);
    exitItem.setText("Exit");
    // Set the bar menu as the menu in the shell
    shell.setMenuBar(menu);
  }
  /**
   * Creates the left-half pop-up menu
   * 
   * @param shell the main window
   */
  private void createPopUpMenu(Shell shell) {
    // Create a composite that the pop-up menu will be
    // associated with
    Label label = new Label(shell, SWT.BORDER);
    label.setText("Pop-up Menu");
    // Create the pop-up menu
    Menu menu = new Menu(label);
    // Create the images
    star = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
        "rntsoft.gif"));
    circle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
        "rntsoft.gif"));
    square = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
        "rntsoft.gif"));
    triangle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
        "rntsoft.gif"));
    // Create all the items in the pop-up menu
    MenuItem newItem = new MenuItem(menu, SWT.CASCADE);
    newItem.setText("New");
    newItem.setImage(star);
    MenuItem refreshItem = new MenuItem(menu, SWT.NONE);
    refreshItem.setText("Refresh");
    refreshItem.setImage(circle);
    MenuItem deleteItem = new MenuItem(menu, SWT.NONE);
    deleteItem.setText("Delete");
    new MenuItem(menu, SWT.SEPARATOR);
    // Add a check menu item and select it
    MenuItem checkItem = new MenuItem(menu, SWT.CHECK);
    checkItem.setText("Check");
    checkItem.setSelection(true);
    checkItem.setImage(square);
    // Add a push menu item
    MenuItem pushItem = new MenuItem(menu, SWT.PUSH);
    pushItem.setText("Push");
    new MenuItem(menu, SWT.SEPARATOR);
    // Create some radio items
    MenuItem item1 = new MenuItem(menu, SWT.RADIO);
    item1.setText("Radio One");
    item1.setImage(triangle);
    MenuItem item2 = new MenuItem(menu, SWT.RADIO);
    item2.setText("Radio Two");
    MenuItem item3 = new MenuItem(menu, SWT.RADIO);
    item3.setText("Radio Three");
    // Create a new radio group
    new MenuItem(menu, SWT.SEPARATOR);
    // Create some radio items
    MenuItem itema = new MenuItem(menu, SWT.RADIO);
    itema.setText("Radio A");
    MenuItem itemb = new MenuItem(menu, SWT.RADIO);
    itemb.setText("Radio B");
    MenuItem itemc = new MenuItem(menu, SWT.RADIO);
    itemc.setText("Radio C");
    // Create the New item's dropdown menu
    Menu newMenu = new Menu(menu);
    newItem.setMenu(newMenu);
    // Create the items in the New dropdown menu
    MenuItem shortcutItem = new MenuItem(newMenu, SWT.NONE);
    shortcutItem.setText("Shortcut");
    MenuItem iconItem = new MenuItem(newMenu, SWT.NONE);
    iconItem.setText("Icon");
    // Set the pop-up menu as the pop-up for the label
    label.setMenu(menu);
  }
  /**
   * Creates the No Radio Group pop-up menu
   * 
   * @param shell the main window
   */
  private void createNoRadioGroupPopUpMenu(Shell shell) {
    // Create a composite that the pop-up menu will be
    // associated with
    Label label = new Label(shell, SWT.BORDER);
    label.setText("No Radio Group Menu");
    // Create the pop-up menu with the No Radio Group style
    Menu menu = new Menu(shell, SWT.POP_UP | SWT.NO_RADIO_GROUP);
    label.setMenu(menu);
    // Create all the items in the pop-up menu
    MenuItem item1 = new MenuItem(menu, SWT.RADIO);
    item1.setText("Radio One");
    MenuItem item2 = new MenuItem(menu, SWT.RADIO);
    item2.setText("Radio Two");
    MenuItem item3 = new MenuItem(menu, SWT.RADIO);
    item3.setText("Radio Three");
    // Set the pop-up menu as the pop-up for the label
    label.setMenu(menu);
  }
  /**
   * The application entry point
   * 
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    new Menus().run();
  }
}