添加工具栏到部分

时间:2009-11-23 15:59:37

标签: java eclipse eclipse-plugin swt

我想在SWT中的某个部分添加工具栏。 我在PDE清单编辑器中看到了一个例子。

如何添加此工具栏或按钮? 也许我需要使用不同的控件?

谢谢你, IDO

2 个答案:

答案 0 :(得分:6)

由于发布的解决方案没有生成透明背景图标,因此我研究了如何获得与Plug-In Manifest Editor的Extension Page相同的结果。

Plug-In Manifest Editor - Extensions Page

以下是他们创建工具栏的方式:

    ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
    ToolBar toolbar = toolBarManager.createControl(section);
    toolbar.setCursor(Display.getDefault().getSystemCursor(SWT.CURSOR_HAND));

    // Add sort action to the tool bar
    fSortAction = new SortAction(fExtensionTree, PDEUIMessages.ExtensionsPage_sortAlpha, null, null, this);
    toolBarManager.add(fSortAction);
    // Add collapse action to the tool bar
    fCollapseAction = new CollapseAction(fExtensionTree, PDEUIMessages.ExtensionsPage_collapseAll);
    toolBarManager.add(fCollapseAction);

    toolBarManager.update(true);

    section.setTextClient(toolbar);

修改

这似乎也很有效:

ToolBar toolbar = new ToolBar(section, SWT.NONE);
//add the toolitems here
//...
section.setTextClient(toolbar);

不要让Window Builder Tool使用FormToolkit修改工具栏,否则会画出白色背景。

答案 1 :(得分:0)

您可以使用ImageHyperLink控件。我认为这就是PDE清单编辑器使用的内容。

Section section = new Section(parent, SWT.NONE);
Composite toolbar = new Composite(section, SWT.NONE);
RowLayout layout = new RowLayout(SWT.HORIZONTAL);
layout.marginLeft = 0;
layout.marginRight = 0;
layout.spacing = 0;
layout.marginTop = 0;
layout.marginBottom = 0;
toolbar.setLayout(layout);
parent.setTextClient(toolbar);

ImageHyperlink imageHyperLink = new ImageHyperlink(toolbar, SWT.CENTER);
imageHyperLink.setBackgroundImage(section.getBackgroundImage());
imageHyperLink.setToolTipText("Click me for help");
imageHyperLink.setImage(JFaceResources.getImage(Dialog.DLG_IMG_HELP));
imageHyperLink.addHyperlinkListener(new HyperlinkAdapter()
{
    public void linkActivated(HyperlinkEvent e)
    {
         // Show help
    }
});