2016-04-26 17 views
0

拡張子 ".java"のソースファイルを作成する必要があるアイデアのプラグインをビルドします。私はファイルテンプレートを作成し、JavaCreateTemplateInPackageAction<PsiElement>クラスの実装で使用しました。上記クラスのコンストラクタで、私は最後に、私はアクションとしてplugin.xmlの中に実装を登録し、このIntelliJ IDEAプラグイン:ソースpsiファイルをパッケージ構造内のアイコンに関連付ける

protected JavaCreateTemplateInPackageAction(String text, String description, Icon icon, boolean inSourceOnly) { 
    super(text, description, icon, inSourceOnly ? JavaModuleSourceRootTypes.SOURCES : null); 
} 

等(私は前IconLoader.getIconを使用してロードされた)アイコンでスーパークラスのコンストラクタと呼ばれます。このコードは、指定されたテンプレートでソースファイルを作成するための魅力として機能しますが、問題はパッケージ構造内にあり、指定されたカスタムアイコンを表示せず、Javaクラスのデフォルトアイコン(文字 'c')を表示します。ソースファイルを作成するためにソースパッケージを右クリックすると、指定されたアイコンが新しいメニューに表示されます。誰も私を助けてくれますか?ありがとう。

PS:私は、.javaファイル以外のファイルの拡張子何かを変更しようとしましたが、それはまだ期待されるアイコンは表示されませんが、代わりに、それは、Javaのための一般的なアイコン(文字「J」アイコン)を

答えて

1

アイコンを示しJavaCreateTemplateInPackageActionで、そのアクションにはが使用されています。

<iconProvider implementation="org.intellij.plugins.ceylon.ide.presentation.CeylonIconProvider"/> 

Javaコード:

public class CeylonIconProvider extends IconProvider { 
    @Nullable 
    @Override 
    public Icon getIcon(@NotNull PsiElement element, int flags) { 
     if (element instanceof CeylonFile) { 
      return ... 
     } 

     if (element instanceof CeyLightClass) { 
      ... 
     } 
     return null; 
    } 
} 
プロジェクトビューのアイコンは、あなたの plugin.xml<iconProvider>タグを使用して登録することができますことを、 IconProvider使用してオーバーライドすることができます
関連する問題