List of usage examples for org.eclipse.jface.action CoolBarManager createControl
public CoolBar createControl(Composite parent)
From source file:org.eclipse.rcptt.ui.panels.main.ControlPanelWindow.java
License:Open Source License
private void createToolBar(Composite parent) { final Composite toolbarComposite = new Composite(parent, SWT.NONE); GridLayoutFactory.swtDefaults().numColumns(1).applyTo(toolbarComposite); toolbarComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); CoolBarManager coolBarManager = new CoolBarManager(SWT.HORIZONTAL | SWT.FLAT); {// w ww. j a v a 2 s .co m ToolBarManager manager = new ToolBarManager(SWT.HORIZONTAL | SWT.FLAT); IAction homeAction = new Action() { @Override public void run() { close(); } }; homeAction.setToolTipText(Messages.ControlPanelWindow_ReturnActionTooltip); homeAction.setImageDescriptor(Images.getImageDescriptor(Images.PANEL_HOME)); manager.add(homeAction); IAction saveAction = new Action() { @Override public void run() { if (getModel() != null) { save(); } else { saveAs(); } } }; saveAction.setMenuCreator(new ActionMenuCreator() { @Override protected void fill(MenuManager manager) { manager.add(new Action(Messages.ControlPanelWindow_SaveAction) { { dbc.bindValue(Actions.observeEnabled(this), new ComputedValue() { @Override protected Object calculate() { return getModel() != null; } }); } @Override public void run() { save(); } }); manager.add(new Action(Messages.ControlPanelWindow_SaveAsAction) { @Override public void run() { saveAs(); } }); } }); dbc.bindValue(Actions.observeToolTipText(saveAction), new ComputedValue() { @Override protected Object calculate() { if (getModel() != null) { return Messages.ControlPanelWindow_SaveAction; } else { return Messages.ControlPanelWindow_SaveAsAction; } } }); ISharedImages sharedImages = WorkbenchPlugin.getDefault().getSharedImages(); saveAction.setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_ETOOL_SAVE_EDIT)); saveAction.setDisabledImageDescriptor( sharedImages.getImageDescriptor(ISharedImages.IMG_ETOOL_SAVE_EDIT_DISABLED)); manager.add(saveAction); coolBarManager.add(manager); } { ToolBarManager manager = new ToolBarManager(SWT.HORIZONTAL | SWT.FLAT); manager.add(createRecordAction()); manager.add(createReplayAction()); coolBarManager.add(manager); } { ToolBarManager manager = new ToolBarManager(SWT.HORIZONTAL | SWT.FLAT); manager.add(createRecordingModeAction()); manager.add(createAssertingModeAction()); if (Q7UIPlugin.isImageRecognitionAllowed()) { manager.add(createImageRecognitionModeAction()); } coolBarManager.add(manager); } coolBar = coolBarManager.createControl(toolbarComposite); GridDataFactory.fillDefaults().grab(true, true).applyTo(coolBar); coolBar.addListener(SWT.Resize, new Listener() { public void handleEvent(Event event) { getShell().layout(); } }); }
From source file:org.eclipse.ui.tests.internal.EditorActionBarsTest.java
License:Open Source License
/** * Tests an edge case in cool bar updating when the cool bar has a single separator * and no other contents (or multiple separators and no other contents). * See bug 239945 for details.// ww w . j a v a2s. c o m * @throws Throwable */ public void test239945() throws Throwable { // Test a cool bar with a single separator CoolBarManager coolBarManager = new CoolBarManager(); coolBarManager.add(new Separator(CoolBarManager.USER_SEPARATOR)); try { coolBarManager.createControl(fWindow.getShell()); coolBarManager.update(true); } catch (ArrayIndexOutOfBoundsException e) { fail("Exception updating cool bar with a single separator"); } // Test a cool bar with multiple separators CoolBarManager coolBarManager2 = new CoolBarManager(); coolBarManager2.add(new Separator(CoolBarManager.USER_SEPARATOR)); try { coolBarManager2.createControl(fWindow.getShell()); coolBarManager2.update(true); } catch (ArrayIndexOutOfBoundsException e) { fail("Exception updating cool bar with multiple separators"); } }