Menu Shell 5
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Dialog; 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 MenuShell5 { Display d; Shell s; MenuShell5() { d = new Display(); s = new Shell(d); s.setSize(500, 500); s.setText("A Shell Menu Example"); Menu m = new Menu(s, SWT.BAR); // create a file menu and add an exit item final MenuItem file = new MenuItem(m, SWT.CASCADE); file.setText("File"); final Menu filemenu = new Menu(s, SWT.DROP_DOWN); file.setMenu(filemenu); // create an open menu and to sub-menu items final MenuItem openItem = new MenuItem(filemenu, SWT.CASCADE); openItem.setText("Open"); final Menu submenu = new Menu(s, SWT.DROP_DOWN); openItem.setMenu(submenu); final MenuItem childItem = new MenuItem(submenu, SWT.PUSH); childItem.setText("Child"); final MenuItem dialogItem = new MenuItem(submenu, SWT.PUSH); dialogItem.setText("Dialog"); //add a separator final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR); // create an exit menu item final MenuItem exitItem = new MenuItem(filemenu, SWT.PUSH); exitItem.setText("Exit"); // create an edit menu and add cut copy and paste items final MenuItem edit = new MenuItem(m, SWT.CASCADE); edit.setText("Edit"); final Menu editmenu = new Menu(s, SWT.DROP_DOWN); edit.setMenu(editmenu); final MenuItem cutItem = new MenuItem(editmenu, SWT.PUSH); cutItem.setText("Cut"); final MenuItem copyItem = new MenuItem(editmenu, SWT.PUSH); copyItem.setText("Copy"); final MenuItem pasteItem = new MenuItem(editmenu, SWT.PUSH); pasteItem.setText("Paste"); //create a Window menu and add Child item final MenuItem window = new MenuItem(m, SWT.CASCADE); window.setText("Window"); final Menu windowmenu = new Menu(s, SWT.DROP_DOWN); window.setMenu(windowmenu); final MenuItem maxItem = new MenuItem(windowmenu, SWT.PUSH); maxItem.setText("Maximize"); final MenuItem minItem = new MenuItem(windowmenu, SWT.PUSH); minItem.setText("Minimize"); // create a Help menu and add an about item final MenuItem help = new MenuItem(m, SWT.CASCADE); help.setText("Help"); final Menu helpmenu = new Menu(s, SWT.DROP_DOWN); help.setMenu(helpmenu); final MenuItem aboutItem = new MenuItem(helpmenu, SWT.PUSH); aboutItem.setText("About"); childItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { Shell parent = (Shell) maxItem.getParent().getParent(); ChildShell cs = new ChildShell(parent); } public void widgetDefaultSelected(SelectionEvent e) { } }); dialogItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { Shell parent = (Shell) maxItem.getParent().getParent(); DialogExample de = new DialogExample(parent); de.open(); } public void widgetDefaultSelected(SelectionEvent e) { } }); exitItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { System.exit(0); } public void widgetDefaultSelected(SelectionEvent e) { } }); cutItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { System.out.println("Cut"); } public void widgetDefaultSelected(SelectionEvent e) { } }); copyItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { System.out.println("Copy"); } public void widgetDefaultSelected(SelectionEvent e) { } }); pasteItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { System.out.println("Paste"); } public void widgetDefaultSelected(SelectionEvent e) { } }); maxItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { Shell parent = (Shell) maxItem.getParent().getParent(); parent.setMaximized(true); } public void widgetDefaultSelected(SelectionEvent e) { } }); minItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { Shell parent = (Shell) minItem.getParent().getParent(); parent.setMaximized(false); } public void widgetDefaultSelected(SelectionEvent e) { } }); aboutItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { Shell parent = (Shell) minItem.getParent().getParent(); parent.setMaximized(false); } public void widgetDefaultSelected(SelectionEvent e) { } }); s.setMenuBar(m); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); } public static void main(String[] argv) { new MenuShell5(); } } class DialogExample extends Dialog { DialogExample(Shell parent) { super(parent); } public String open() { Shell parent = getParent(); Shell dialog = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); dialog.setSize(100, 100); dialog.setText("Java Source and Support"); dialog.open(); Display display = parent.getDisplay(); while (!dialog.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return "After Dialog"; } public static void main(String[] argv) { new DialogExample(new Shell()); } } class ChildShell { ChildShell(Shell parent) { Shell child = new Shell(parent); child.setSize(200, 200); child.open(); } }