2016-03-04 2 views
1

В моем приложении RCP есть панель управления, отображаемая установкой configurer.setShowCoolBar(true) в WorkbenchWindowAdvisor#preWindowOpen. Но когда я вношу панель инструментов на главную панель инструментов, она никогда не появляется. Вот мой вклад Код:Eclipse RCP не может внести вклад в основную панель инструментов

<extension point="org.eclipse.ui.menus"> 
     <menuContribution 
      allPopups="true" 
      locationURI="toolbar:org.eclipse.ui.main.toolbar"> 
     <toolbar id="toolbar.perspectivesDynamic"> 
      <dynamic 
        class="my.package.PerspectiveSwitcherToolbar" 
        id="perspectiveSwitcherToolbar"> 
      </dynamic> 
     </toolbar> 
     </menuContribution> 
</extension> 

И ContributionItem класса:

public class PerspectiveSwitcherToolbar extends ContributionItem { 
    ... 

    @Override 
    public void fill(final ToolBar parent, int index) { 
     //Does not get called 
    } 

    @Override 
    public void fill(CoolBar parent, int index) { 
     //Does not get called 
    } 
    ... 
} 

Я использую this code для добавления пользовательской перспективы переключателя. Это довольно старый, но я вижу примеры повсюду в Интернете, добавив панель инструментов, как это на главной панели инструментов, так что я что-то отсутствует elsewher, я полагаю,

ответ

3

Я думаю, что это bug 392457: <toolbar><dynamic></toolbar> не работает на данный момент , Вы можете обойти его, используя <control> и самостоятельно управлять содержимым.

+0

Спасибо. Я применил его в обходном пути в ошибке. Он работает, за исключением того, что я не могу заставить панель инструментов показывать обновления. В методе заполнения WorkbecnWindowControlContribution я создаю панель инструментов для родителя, созданного в createControl. Я успешно заполняю панель инструментов, когда приложение загружается. Но позже, когда я хочу добавить элемент на панель инструментов, я вызываю fill, я вижу, что он добавляет элемент, но панель инструментов не показывает новый элемент, пока я не перезапущу приложение. Я попытался вызвать обновление и макет на панели инструментов и ее родителя. Также называется updateActionBars на Workbecnhindow. Как я могу обновить панель инструментов? – MidnightJava

Смежные вопросы