Eclipse RCP:工具栏之间的分隔符不可见

时间:2014-11-03 13:53:43

标签: eclipse eclipse-plugin eclipse-rcp

在我的应用程序的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>

知道为什么不起作用?

2 个答案:

答案 0 :(得分:0)

<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>

希望上面的代码能够回答您的问题。

答案 1 :(得分:0)

我相信你的方式(即将分隔符声明为menuContribution的直接子节点)和yeswanth kumar's way(即在工具栏中声明分隔符)应该有效。

可能是this个错误。引用错误报告:

  

[...]当任何兄弟节点具有可见的节点或可见性标识符时,它将false设置为可见。它似乎永远不会在以后更新。

     

因此,工具栏上通过菜单贡献贡献的分隔符不会显示。

不幸的是,分隔符目前并不与visibleWhen结合使用。