package dbcs; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.*; public class PR29979 { static boolean enable = false; public static void main(String[] args) { Display display = new Display (); Shell shell = new Shell (display); shell.setLayout (new FillLayout(SWT.VERTICAL)); final StyledText st = new StyledText (shell, SWT.MULTI); st.setText ("Styled Text"); final Text text = new Text (shell, SWT.MULTI | SWT.BORDER); text.setText ("Native Text"); final Menu menuBar = new Menu (shell, SWT.BAR); shell.setMenuBar(menuBar); Menu menu = new Menu (menuBar); MenuItem menuCascade = new MenuItem (menuBar, SWT.CASCADE); menuCascade.setText ("menu"); menuCascade.setMenu (menu); final MenuItem menuItem = new MenuItem (menu, SWT.PUSH); menuItem.setText ("menu Item"); final Listener listener = new Listener () { public void handleEvent(Event event) { st.selectAll(); text.selectAll(); } }; final Button button = new Button(shell, SWT.PUSH); button.setText ("Install Accelerators"); button.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { if (enable) { menuItem.setAccelerator (0); // must be called to fix the IME menuItem.removeListener (SWT.Selection, listener); button.setText ("Install Accelerators"); } else { menuItem.setAccelerator (SWT.MOD1 | ' '); menuItem.addListener (SWT.Selection, listener); button.setText ("Remove Accelerators"); } enable = !enable; } }); shell.open (); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose (); } }