MultiPageEditor工具栏来自单页的贡献

时间:2014-07-10 13:11:45

标签: java eclipse-plugin

关于我的XML多页面编辑器的另一个问题。可以通过MultiPageEditorActionBarContributor为eclipse的工具栏做出贡献,确切地说是通过覆盖contributeToToolBar(IToolBarManager manager)方法并使用传递的管理器。在这种情况下,贡献按钮可以从编辑器的所有页面中看到。

@Override
public void contributeToToolBar(IToolBarManager manager)
{
    manager.add(new Separator());
    manager.add(updateTabsAction);
}

如果选择了特定页面,是否可以使某些按钮可见?

1 个答案:

答案 0 :(得分:0)

这个很容易解决。我没有覆盖contributeToToolBar,而是向setActivePage添加了一些代码,并从那里使用了ToolBarManager

@Override
public void setActivePage(IEditorPart part)
{
    // ...skipped...

    IActionBars actionBars = getActionBars();
    if (actionBars != null)
    {

        // ...skipped...

        IToolBarManager toolBarManager = actionBars.getToolBarManager();
        if (part instanceof StructuredTextEditor)
        {
            toolBarManager.add(separator);
            toolBarManager.add(updateTabsAction);
        }
        else
        {
            toolBarManager.removeAll();
        }

        toolBarManager.update(true);  //This is important. Otherwise the
                                      //changes aren't applied to the toolbar.
        actionBars.updateActionBars();
    }
}