В plugin.xml моего приложения я определяю несколько панелей инструментов, между которыми я хочу иметь разделители. Однако, если я помещу <separator> элементов между ними, они не появятся.

Что является причиной этого? Есть ли обходной путь, как я могу отображать разделители?

Это вклад панели инструментов:

<menuContribution
    allPopups="false"
    locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">

  <toolbar
      id="com.myapplication.editors.toolbar">
    <command
        commandId="com.myapplication.editors.open.xml.editor"
        icon="icons/editors/xml.png"
        label="Create XML File "
        style="push">
      <visibleWhen
          checkEnabled="false">
        <with
            variable="com.myapplication.editors.command.state.active">
          <equals
              value="ENABLED">
          </equals>
        </with>
      </visibleWhen>
    </command>
    <command
        commandId="com.myapplication.editors.open.text.editor"
        icon="icons/editors/text.png"
        label="Create Plain Text File"
        style="push">
      <visibleWhen
          checkEnabled="false">
        <with
            variable="com.myapplication.editors.command.state.active">
          <equals
              value="ENABLED">
          </equals>
        </with>
      </visibleWhen>
    </command>
  </toolbar>

  <separator
      name="com.myapplication.editors.separator1"
      visible="true">
  </separator>

  <toolbar
      id="com.myapplication.editors.parameter.toolbar">
    <command
        commandId="com.myapplication.editors.matrix"
        icon="icons/matrix.png"
        label="Create Matrix"
        style="push">
      <visibleWhen
          checkEnabled="false">
        <with
            variable="com.myapplication.editors.command.state.active">
          <equals
              value="ENABLED">
          </equals>
        </with>
      </visibleWhen>
    </command>
        ...
  </toolbar>

</menuContribution>

Любая идея, почему это не работает?

0
Terry 3 Ноя 2014 в 16:53
Разделители показывают только если есть пункты меню до и после разделителя - в вашем случае это так?
 – 
greg-449
3 Ноя 2014 в 18:08
Под пунктами меню вы имеете в виду команды? Тогда да. В моем примере разделитель находится между панелями инструментов (у обеих есть команды/элементы), но я также пробовал ставить разделитель между командами одной панели инструментов, и они все равно не отображались.
 – 
Terry
4 Ноя 2014 в 10:31

2 ответа

<menuContribution
    allPopups="false"
    locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions ">
 <toolbar
       id="id.toolbar">
    <command
          commandId="id.command"
          label="Hello World"
          style="push">
    </command>
    <separator
          name="id.separator"
          visible="true">
    </separator>
 </toolbar>

Надеюсь, приведенный выше код ответит на ваш запрос.

0
yeswanth kumar 5 Ноя 2014 в 15:08

Я считаю, что и ваш способ (т.е. объявление разделителя прямым дочерним элементом menuContribution), и путь yeswanth kumar (т.е. объявление разделителя на панели инструментов) должно работать.

Вероятно, это эта ошибка. Цитата из отчета об ошибке:

[...] Он устанавливает false как видимый, когда любой родственный элемент имеет видимый идентификатор узла или видимости. И, кажется, никогда не обновляется позже.

В результате разделители на панели инструментов, добавленные через вклад меню, не отображаются.

Так что разделители в настоящее время не работают в сочетании с visibleWhen, к сожалению.

0
Community 20 Июн 2020 в 12:12