2011-08-13 3 views
1

plugin.xml<visibleWhen>要素とともに、menuContribution + commandを使用しています。plugin.xmlのポップアップメニューの表示を特定のフォルダとサブフォルダのみに制限するにはどうすればいいですか?そんなことはありますか?

私のプロジェクト構造には、特定のフォルダ "XYZ"があり、サブフォルダ "xyz1" "xyz2"があるとします。
ポップアップメニューの項目を右クリックすると表示されるのは、XYZxyz1xyz2のフォルダのみです。

これを行うための入力は本当に役に立ちます。

おかげで、 アッバス

答えて

2
<test forcePluginActivation="true" 
     property="testWizard.propertyTester.checkFolder" 
     value="org.eclipse.wst.jsdt.core.jsNature" 
</test> is the reference to the property tester , which can be defined as 

<extension 
     point="org.eclipse.core.expressions.propertyTesters"> 
    <propertyTester   
     class="testwizard.wizards.MyPropTester" 
      id="MyPropTesterFolder" 
      namespace="testWizard.propertyTester" 
      properties="checkFolder" 
      type="org.eclipse.core.resources.IFolder"> 
    </propertyTester> 

フォルダの種類とそのサブフォルダが

package testwizard.wizards; 

import org.eclipse.core.expressions.PropertyTester; 
import org.eclipse.core.resources.IFolder; 
import org.eclipse.core.runtime.CoreException; 

public class MyPropTester extends PropertyTester{ 

    @Override 
    public boolean test(Object receiver, String property, Object[] args, 
      Object expectedValue) { 

     IFolder folder=(IFolder)receiver; 
     String folderPath=folder.getProjectRelativePath().toString(); 
     String arr[]=folderPath.split("/");  
     try { 
      if(folder.getProject().hasNature(expectedValue.toString())) 
      { 
       if(arr[0].equals("XYZ")) 
       { 
        return true; 
       } 
      } 
     } catch (CoreException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return false; 
    } 

} 
+1

優れたフィードバックに以下のように試験することが可能です。 +1 – VonC

関連する問題