SWT Jface Eclipse Java

/******************************************************************************
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * All right reserved. 
 * 
 * Created on Jan 29, 2004 3:09:11 PM by JACK
 * $Id$
 * 
 * visit: http://www.asprise.com/swt
 *****************************************************************************/
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class Sample {
  Display display = new Display();
  Shell shell = new Shell(display);
  public Sample() {
    shell.setText("Book Entry Demo");
    GridLayout gridLayout = new GridLayout(4, false);
    gridLayout.verticalSpacing = 8;
    shell.setLayout(gridLayout);
    // Title
    Label label = new Label(shell, SWT.NULL);
    label.setText("Title: ");
    Text title = new Text(shell, SWT.SINGLE | SWT.BORDER);
    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    title.setLayoutData(gridData);
    // Author(s)
    label = new Label(shell, SWT.NULL);
    label.setText("Author(s): ");
    Text authors = new Text(shell, SWT.SINGLE | SWT.BORDER);
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    authors.setLayoutData(gridData);
    // Cover
    label = new Label(shell, SWT.NULL);
    label.setText("Cover: ");
    gridData = new GridData();
    gridData.verticalSpan = 3;
    label.setLayoutData(gridData);
    CLabel cover = new CLabel(shell, SWT.NULL);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 1;
    gridData.verticalSpan = 3;
    gridData.heightHint = 100;
    gridData.widthHint = 100;
    cover.setLayoutData(gridData);
    // Details.
    label = new Label(shell, SWT.NULL);
    label.setText("Pages");
    Text pages = new Text(shell, SWT.SINGLE | SWT.BORDER);
    pages.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    label = new Label(shell, SWT.NULL);
    label.setText("Publisher");
    Text pubisher = new Text(shell, SWT.SINGLE | SWT.BORDER);
    pubisher.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    label = new Label(shell, SWT.NULL);
    label.setText("Rating");
    Combo rating = new Combo(shell, SWT.READ_ONLY);
    rating.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    rating.add("5");
    rating.add("4");
    rating.add("3");
    rating.add("2");
    rating.add("1");
    // Abstract.
    label = new Label(shell, SWT.NULL);
    label.setText("Abstract:");
    Text bookAbstract =
      new Text(
        shell,
        SWT.WRAP
          | SWT.MULTI
          | SWT.BORDER
          | SWT.H_SCROLL
          | SWT.V_SCROLL);
    gridData =
      new GridData(
        GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    gridData.grabExcessVerticalSpace = true;
    bookAbstract.setLayoutData(gridData);
    // Button.
    Button enter = new Button(shell, SWT.PUSH);
    enter.setText("Enter");
    gridData = new GridData();
    gridData.horizontalSpan = 4;
    gridData.horizontalAlignment = GridData.END;
    enter.setLayoutData(gridData);
    // Fill information.
    title.setText("Professional Java Interfaces with SWT/JFace");
    authors.setText("Jack Li Guojie");
    pages.setText("500pp");
    pubisher.setText("John Wiley & Sons");
    cover.setBackground(new Image(display, "rntsoft.gif"));
    bookAbstract.setText(
      "This book provides a comprehensive guide for \n"
        + "you to create Java user interfaces with SWT/JFace. ");
    shell.pack();
    shell.open();
    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }
    display.dispose();
  }
  private void init() {
  }
  public static void main(String[] args) {
    new Sample();
  }
}