Eclipse 如何在弹出菜单中添加项目?

Eclipse 如何在弹出菜单中添加项目?,eclipse,plugins,Eclipse,Plugins,在eclipse插件开发中,我想在弹出菜单中添加一项(例如:Mystyle) 比如, 项目资源管理器-->右键单击-->新建-->MyStyle 如何在eclipse插件开发中实现这一点 问候 Mathan像这样的东西应该可以做到(如下所示): 看 定义命令UI结构的有序添加集。已定义的元素将添加到命令UI结构中locationURI元素指定的位置 无论菜单、工具栏或修剪出现在UI中的何处,这都应该是所有贡献到菜单、工具栏或修剪中的起点 locationURI-一种URI规范,用于定义将在

在eclipse插件开发中,我想在弹出菜单中添加一项(例如:Mystyle)

比如,

项目资源管理器-->右键单击-->新建-->MyStyle

如何在eclipse插件开发中实现这一点

问候
Mathan

像这样的东西应该可以做到(如下所示):


定义命令UI结构的有序添加集。已定义的元素将添加到命令UI结构中
locationURI
元素指定的位置

无论菜单、工具栏或修剪出现在UI中的何处,这都应该是所有贡献到菜单、工具栏或修剪中的起点

  • locationURI
    -一种URI规范,用于定义将在其中添加包含的添加内容的插入点。
    URI的格式由三个基本部分组成:
    • 方案:“菜单”、“弹出窗口”或“工具栏”之一。
      指示用于处理供款的经理的类型
    • Id:这是现有菜单的Id、视图Id或编辑器“type”的Id
    • 查询:查询格式为
      =
      ,其中:
      是“之前”或“之后”,并且
      是现有菜单项的id

另请参见,-扩展点,该扩展点带有
menuContribution
,其
locationURI
-属性指向
popup:org.eclipse.ui.popup.any?after=additions

警告,正如评论中提到的,该包
org.eclipse.ui.popupmones
已被弃用。

更多信息请参见问题。

刚才我花了一段时间才解决了这个问题,所以我将给出OP问题的答案(添加到文件->新建菜单)

贡献地点(常用.新建.菜单)

多亏了这篇文章,我发现你想加入popup:common.new.menu?after=new.why,你会问吗?如果我知道的话,那就见鬼去吧;但它是有效的

结果

(当C/C++处于活动透视图状态时)

(当“非”C/C++作为活动透视图时)

以下是我的示例插件:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.commands">
      <command
            defaultHandler="com.justin.debug.SampleHandler"
            id="com.justin.debug.commands.sampleCommand"
            name="Sample Command">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:common.new.menu?after=new">
         <command
               commandId="com.justin.debug.commands.sampleCommand"
               icon="icons/sample.gif"
               label="New Root Command From Justin"
               style="push">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="activeWorkbenchWindow.activePerspective">
                  <equals
                        value="org.eclipse.cdt.ui.CPerspective">
                  </equals>
               </with>
            </visibleWhen>
         </command>
      </menuContribution>
      <menuContribution
            locationURI="popup:common.new.menu?after=new">
         <menu
               id="org.ecilpse.ui.navigator.ProjectExplorer.helloJustin"
               label="Hello Justin">
            <command
                  commandId="com.justin.debug.commands.sampleCommand"
                  icon="icons/sample.gif"
                  label="New Submenu Command From Justin"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>
</plugin>

我在这里添加了一个重要的部分,即“visibleWhen”参数。这仅在C/C++透视图中显示Justin的新根命令。事实证明,要弄清楚这一点是很困难的,因此我将其包含在示例中。以下是我在研究时挖掘的有用资源:

通过痛苦地挖掘org.eclipse.cdt.ui插件的plugin.xml,我找到了C透视图org.eclipse.cdt.ui.CPerspective的名称


现在,如果有人能告诉我将来如何轻松查找这些uri/resources/properties…天哪。

我认为org.eclipse.ui.popupmones已被删除,现在请看@Prashant:非常好的观点。我编辑了我的答案以反映您的评论。@VonC您答案中的eclipse.org链接现在已断开。@reprogrammer所有链接现在都已恢复。这个问题tion从未收到答案;如何添加到文件->新建菜单?当视图更改为Package Explorer时,该方法不起作用。有任何建议吗。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.commands">
      <command
            defaultHandler="com.justin.debug.SampleHandler"
            id="com.justin.debug.commands.sampleCommand"
            name="Sample Command">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:common.new.menu?after=new">
         <command
               commandId="com.justin.debug.commands.sampleCommand"
               icon="icons/sample.gif"
               label="New Root Command From Justin"
               style="push">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="activeWorkbenchWindow.activePerspective">
                  <equals
                        value="org.eclipse.cdt.ui.CPerspective">
                  </equals>
               </with>
            </visibleWhen>
         </command>
      </menuContribution>
      <menuContribution
            locationURI="popup:common.new.menu?after=new">
         <menu
               id="org.ecilpse.ui.navigator.ProjectExplorer.helloJustin"
               label="Hello Justin">
            <command
                  commandId="com.justin.debug.commands.sampleCommand"
                  icon="icons/sample.gif"
                  label="New Submenu Command From Justin"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>
</plugin>