代码之家  ›  专栏  ›  技术社区  ›  Danny Lo

来自单个页面的MultiPageEditor工具栏贡献

  •  0
  • Danny Lo  · 技术社区  · 12 年前

    关于我的XML多页编辑器的另一个问题。可以通过 MultiPageEditorActionBarContributor ,准确地说,通过重写 contributeToToolBar(IToolBarManager manager) 方法,并使用传递的管理器。在这种情况下,编辑器的所有页面都可以看到贡献的按钮。

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

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

    1 回复  |  直到 12 年前
        1
  •  0
  •   Danny Lo    12 年前

    这个问题很容易解决。而不是覆盖 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();
        }
    }