Example usage for org.eclipse.jface.action CoolBarManager createControl

List of usage examples for org.eclipse.jface.action CoolBarManager createControl

Introduction

In this page you can find the example usage for org.eclipse.jface.action CoolBarManager createControl.

Prototype

public CoolBar createControl(Composite parent) 

Source Link

Document

Creates and returns this manager's cool bar control.

Usage

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");
    }
}