使用Eclipse插件开发API在eclipse的工具栏上添加组合框

Sya*_*yam 2 eclipse eclipse-plugin

我想使用Eclipse Plug-in开发API(不是RCP应用程序)向eclipse的工具栏(coolbar)添加一个组合框.应动态添加/删除此组合框项.

我知道在RCP应用程序中可以通过以下链接:http://www.thedeveloperspoint.com/?p = 140

但我正在看Eclipse插件API.

任何帮助将不胜感激.

谢谢
Syam

Sya*_*yam 5

这可以通过使用2个步骤来完成.

第1步:使用扩展点机制创建/添加工具栏到全局工具栏(使用locationURI作为"toolbar:org.eclipse.ui.main.toolbar")

  <extension
     point="org.eclipse.ui.menus">
    <menuContribution
        allPopups="false"
        locationURI="toolbar:org.eclipse.ui.main.toolbar">
     <toolbar
           id="com.company.module.toolbar"
           label="Sample">
        <control
              class="com.company.module.ui.ComboToolbarContribution"
              id="ratata">
        </control>
    </toolbar>
   </menuContribution>
 </extension>
Run Code Online (Sandbox Code Playgroud)

第2步:按如下方式实施ComboToolbarContribution.

package com.company.module.ui;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.menus.WorkbenchWindowControlContribution;

public class ComboToolbarContribution extends
    WorkbenchWindowControlContribution {
private Combo mReader;

public ComboToolbarContribution() {

}

@Override
protected Control createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NONE);
    GridLayout glContainer = new GridLayout(1, false);
    glContainer.marginTop = -1;
    glContainer.marginHeight = 0;
    glContainer.marginWidth = 0;
    container.setLayout(glContainer);
    GridData glReader = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1);
    glReader.widthHint = 280;
    mReader = new Combo(container, SWT.BORDER | SWT.READ_ONLY
            | SWT.DROP_DOWN);
    mReader.setLayoutData(glReader);

    return container;
}

@Override
protected int computeWidth(Control control) {
    return 300;
} }
Run Code Online (Sandbox Code Playgroud)

通过上述两个步骤,组合框将添加到全局工具栏,用户需要提供对组合框的全局访问.