Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Shared Menu in SWT

/******************************************************************************  * Copyright (c) 1998, 2004 Jackwind Li Guojie  * All right reserved.   *   * Created on Jan 5, 2004 2:50:44 PM by JACK  * $Id$  *   * visit: http://www.asprise.com/swt  *****************************************************************************/ import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; public class SharedMenu {   Display display = new Display();   Shell shell = new Shell(display);   public SharedMenu() {     menu();     shell.pack();     shell.open();          while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         // If no more entries in event queue         display.sleep();       }     }     display.dispose();   }      private void menu() {     shell.setLayout(new GridLayout(2, true));          final Composite composite1 = new Composite(shell, SWT.BORDER);     composite1.setBackground(display.getSystemColor(SWT.COLOR_BLACK));          final Composite composite2 = new Composite(shell, SWT.BORDER);     composite2.setBackground(display.getSystemColor(SWT.COLOR_BLUE));          Menu menu = new Menu(composite1);     MenuItem menuItem = new MenuItem(menu, SWT.PUSH);     menuItem.setText("Popup menu");          menuItem.addDisposeListener(new DisposeListener() {       public void widgetDisposed(DisposeEvent e) {         System.out.println("Menu item is disposed.");       }     });     menuItem.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent e) {         System.out.println("Dispsoing ...");         //composite2.setMenu(null);         composite2.dispose();       }     });          composite1.setMenu(menu);     composite2.setMenu(menu);   } /*     private void complex() {     shell.setLayout(new GridLayout(2, true));          Label label = new Label(shell, SWT.NULL);     label.setText("Label");          Composite composite = new Composite(shell, SWT.NULL);     composite.setLayout(new GridLayout());          Button button1 = new Button(composite, SWT.PUSH);     button1.setText("Button 1");          Button button2 = new Button(composite, SWT.PUSH);     button2.setText("Button 2");        }      private void addButton() {     shell.setLayout(new GridLayout());          Label label = new Label(shell, SWT.NULL);          final Color color = new Color(display, 255, 0, 0);          label.setForeground(color);     label.setForeground(display.getSystemColor(SWT.COLOR_RED));          label.setText("Testing label");          label.addDisposeListener(new DisposeListener() {       public void widgetDisposed(DisposeEvent e) {         color.dispose();       }     });   }   private void draw() {     GC gc = new GC(shell);     gc.setLineWidth(3);          //Color color = new Color(display, 255, 0, 0);          //gc.setForeground(color);     gc.drawRectangle(10, 10, 200, 100);          gc.dispose();   } */   public static void main(String[] args) {     new SharedMenu();   }    }