Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Widget Test 2

/*******************************************************************************  * 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;   } }