SWT Jface Eclipse Java

/*******************************************************************************
 * Copyright (c) 2004 Berthold Daum. All rights reserved. This program and the
 * accompanying materials are made available under the terms of the Common
 * Public License v1.0 which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors: Berthold Daum
 ******************************************************************************/
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.TreeAdapter;
import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class WidgetTest2 {
  public WidgetTest2() {
    super();
  }
  /** * MessageBox ** */
  public static void main(String[] args) {
    // Create Display instance
    final Display display = new Display();
    // Create top level shell (pass display as parent)
    final Shell toplevelShell = new Shell(display);
    // Set title line
    toplevelShell.setText("TopLevel.titleLine");
    // Show shell
    toplevelShell.open();
    while (true) {
      // Create message box
      MessageBox box = new MessageBox(toplevelShell, SWT.RETRY
          | SWT.CANCEL | SWT.APPLICATION_MODAL | SWT.ICON_QUESTION);
      // Set title
      box.setText("Test");
      // Set message
      box.setMessage("Do you want to try again?");
      // Open message box
      if (box.open() == SWT.CANCEL)
        break;
    }
  }
  /** * Composite ** */
  private static final int X = 0;
  private static final int Y = 0;
  private static final int WIDTH = 300;
  private static final int HEIGHT = 200;
  public static Composite createComposite(Composite parent) {
    /** * Composite ** */
    //     Create new Composite instance
    final Composite composite = new Composite(parent, 0);
    //     Get properties from the containing composite
    composite.setBackground(parent.getBackground());
    composite.setForeground(parent.getForeground());
    composite.setFont(parent.getFont());
    //     Set position and size
    composite.setBounds(X, Y, WIDTH, HEIGHT);
    return composite;
  }
  /** * Buttons ** */
  public static Button createButton(Composite composite) {
    final Button button = new Button(composite, SWT.PUSH);
    button.setText("Press me!");
    //     React to click events
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        System.out.println("Key was pressed");
      }
    });
    return button;
  }
  public static Button createImageButton(Composite composite) {
    final Button button = new Button(composite, SWT.PUSH);
    Display display = composite.getDisplay();
    final Image image = new Image(display, "images/button1.gif");
    button.setImage(image);
    //     React to click events
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        System.out.println("Key was pressed");
      }
    });
    //     Dispose image when button is disposed
    button.addDisposeListener(new DisposeListener() {
      public void widgetDisposed(DisposeEvent e) {
        image.dispose();
      }
    });
    return button;
  }
  /** * Sliders ** */
  public static Slider createSlider(Composite composite) {
    final Slider slider = new Slider(composite, SWT.HORIZONTAL);
    //     Minimalwert setzen
    slider.setMinimum(0);
    //     Maximalwert setzen
    slider.setMaximum(1000);
    //     Inkrement fur Pfeiltasten setzen
    slider.setIncrement(50);
    //     Inkrement fur Klick auf Schiebeflache setzen
    slider.setPageIncrement(200);
    //     aktuelle Position setzen
    slider.setSelection(500);
    //     GroBe des Handgriffs setzen
    slider.setThumb(200);
    //     Auf Schiebeereignisse reagieren
    slider.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        System.out.println("Schieberegler verstellt: "
            + slider.getSelection());
      }
    });
    return slider;
  }
  /** * Text fields ** */
  public static Text createText(Composite composite) {
    final Text text = new Text(composite, SWT.SINGLE);
    text.setText("Input text");
    text.addSelectionListener(new SelectionAdapter() {
      public void widgetDefaultSelected(SelectionEvent e) {
        System.out.println("Enter was pressed: " + text.getSelection());
      }
    });
    text.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        System.out
            .println("Text after modification: " + text.getText());
      }
    });
    text.addVerifyListener(new VerifyListener() {
      public void verifyText(VerifyEvent e) {
        String s = text.getText();
        System.out.println("Text before modification: " + s);
        // Veto: Text longer than 10 characters is prohibited
        if (s.length() >= 10)
          e.doit = false;
      }
    });
    return text;
  }
  /** * Tables ** */
  public static Table createTable(Composite composite) {
    final Table table = new Table(composite, SWT.SINGLE | SWT.H_SCROLL
        | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    //       Create three table columns
    final TableColumn col1 = new TableColumn(table, SWT.LEFT);
    col1.setText("Column 1");
    col1.setWidth(80);
    final TableColumn col2 = new TableColumn(table, SWT.LEFT);
    col2.setText("Column 2");
    col2.setWidth(80);
    final TableColumn col3 = new TableColumn(table, SWT.LEFT);
    col3.setText("Column 3");
    col3.setWidth(80);
    //       Make column headers and grid lines visible
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    //       Create table rows
    final TableItem item1 = new TableItem(table, 0);
    item1.setText(new String[] { "a", "b", "c" });
    final TableItem item2 = new TableItem(table, 0);
    item2.setText(new String[] { "d", "c", "e" });
    //       Add selection listeners
    table.addSelectionListener(new SelectionAdapter() {
      public void widgetDefaultSelected(SelectionEvent e) {
        processSelection("Enter was pressed: ");
      }
      public void widgetSelected(SelectionEvent e) {
        processSelection("Table element was selected: ");
      }
      private void processSelection(String message) {
        // Get selected table row
        TableItem[] selection = table.getSelection();
        // Because of SWT.SINGLE only one row was selected
        TableItem selectedRow = selection[0];
        // Format the table elements for output
        String s = selectedRow.getText(0) + ", "
            + selectedRow.getText(1) + ", "
            + selectedRow.getText(2);
        System.out.println(message + s);
      }
    });
    return table;
  }
  /** * Lists ** */
  public static List createList(Composite composite) {
    final List list = new List(composite, SWT.MULTI);
    list.add("Element1");
    list.add("Element2");
    list.add("Element3");
    list.addSelectionListener(new SelectionAdapter() {
      public void widgetDefaultSelected(SelectionEvent e) {
        processSelection("Enter was pressed: ");
      }
      public void widgetSelected(SelectionEvent e) {
        processSelection("List entry was selected: ");
      }
      private void processSelection(String message) {
        // Get selected entries
        String[] selection = list.getSelection();
        // Format entries for output
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < selection.length; i++) {
          sb.append(selection[i] + " ");
        }
        System.out.println(message + sb);
      }
    });
    return list;
  }
  /** * Combos ** */
  public static Combo createCombo(Composite composite) {
    final Combo combo = new Combo(composite, SWT.DROP_DOWN);
    //     Listenelement erzeugen
    combo.add("Element1");
    combo.add("Element2");
    combo.add("Element3");
    //     Vorbelegung des Textfeldes
    combo.setText("Select");
    //     SelectionListener hinzufugen
    combo.addSelectionListener(new SelectionAdapter() {
      public void widgetDefaultSelected(SelectionEvent e) {
        System.out.println("Enter gedruckt: " + combo.getText());
      }
      public void widgetSelected(SelectionEvent e) {
        System.out.println("Listeneintrag ausgewahlt: "
            + combo.getText());
      }
    });
    //     ModifyListener hinzufugen
    combo.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        System.out
            .println("Text wurde modifiziert: " + combo.getText());
      }
    });
    return combo;
  }
  /** * Trees ** */
  public static Tree createTree(Composite composite) {
    final Tree tree = new Tree(composite, SWT.SINGLE);
    //     Oberste Knotenebene erzeugen
    final TreeItem node1 = new TreeItem(tree, SWT.NULL);
    node1.setText("Knoten 1");
    final TreeItem node2 = new TreeItem(tree, SWT.NULL);
    node2.setText("Knoten 2");
    final TreeItem node3 = new TreeItem(tree, SWT.NULL);
    node3.setText("Knoten 3");
    //     Zweite Knotenebene erzeugen
    final TreeItem node11 = new TreeItem(node1, SWT.NULL);
    node11.setText("Knoten 1.1");
    final TreeItem node12 = new TreeItem(node1, SWT.NULL);
    node12.setText("Knoten 1.2");
    //     SelectionListener hinzufugen
    tree.addSelectionListener(new SelectionAdapter() {
      public void widgetDefaultSelected(SelectionEvent e) {
        System.out.println("Enter gedruckt: "
            + tree.getSelection()[0].getText());
      }
      public void widgetSelected(SelectionEvent e) {
        System.out.println("Baumknoteneintrag ausgewahlt: "
            + tree.getSelection()[0].getText());
      }
    });
    //     TreeListener hinzufugen
    tree.addTreeListener(new TreeAdapter() {
      public void treeCollapsed(TreeEvent e) {
        System.out.println("Knoten kollabiert: "
            + ((TreeItem) e.item).getText());
      }
      public void treeExpanded(TreeEvent e) {
        System.out.println("Knoten expandiert: "
            + ((TreeItem) e.item).getText());
      }
    });
    return tree;
  }
}