2015-07-10 77 views
0

我想添加上下文菜單命令時選擇Java Source Files,但上下文菜單不出現。
Java Source Files的類別類型是CompilationUnit,我從eclipse plugin-in spy獲得。
命令使用visibleWhen不出現在上下文菜單中

這是插件擴展聲明(的plugin.xml):

<extension 
     point="org.eclipse.ui.menus"> 
     <menuContribution 
      locationURI="popup:org.eclipse.ui.popup.any?after=additions"> 
     <command 
       commandId="xml2javacode.commands.sampleCommand" 
       id="xml2javacode.menus.sampleCommand" 
       mnemonic="S"> 
      <visibleWhen> 
       <with 
        variable="activeMenuSelection"> 
        <iterate> 
        <instanceof 
          value="org.eclipse.jdt.core.dom.CompilationUnit"> 
        </instanceof> 
        </iterate> 
       </with> 
      </visibleWhen> 
     </command> 
     </menuContribution> 
    </extension> 

回答

0

有幾類叫做CompilationUnit,你選擇了錯誤的一個。

<instanceof 
    value="org.eclipse.jdt.internal.core.CompilationUnit"> 
</instanceof> 

作品 - 這是一個內部類,所以你不應該引用它。

檢查Java源文件通常的方法是:

<adapt type="org.eclipse.core.resources.IResource"> 
    <test property="org.eclipse.core.resources.contentTypeId" value="org.eclipse.jdt.core.javaSource" /> 
</adapt> 

這是適應選擇到IResource,然後檢查內容類型ID。

+0

非常好!非常感謝你,它成功了,我只是使用'org.eclipse.jdt.internal.core.CompilationUnit',它可能會導致'permGen內存不足',使用'IResource'沒有這個問題。 – zyl

相關問題