2016-08-30 14 views
0

複数のダイアログを使用して表示するカスタムEclipseプラグインを作成しました。プラグインのiconsフォルダで使用している左上のアイコンイメージを設定できるかどうかを確認します。私はそのアイコンを取得し、Eclipseが使用するデフォルトのアイコンの代わりに設定したいと思います。 ダイアログタイトルを変更するにはconfigureShell()メソッドをオーバーライドしていますが、アイコンも変更したいと考えています。私もgetClass().getResource("best.gif")を使用して、同じパッケージ内にイメージを持ってみましたEclipse Pluginカスタムダイアログのイメージアイコンを設定

@Override 
protected void configureShell(Shell parent){ 
    super.configureShell(parent); 
    parent.setText("Choose variant..."); 
    Image icon = new Image(parent.getDisplay(), "icons/best.gif"); - this method does not work as it cannot find the file 
    parent.setImage(icon); 
} 

、まだ私は与えている場所(にFileNotFoundException)を見つけることができず、また、Imageコンストラクタは、URLオブジェクトを受け付けません。

@Override 
protected void configureShell(Shell parent){ 
    super.configureShell(parent); 
    parent.setText("Choose variant..."); 
    Image icon = new Image(parent.getDisplay(), getClass().getResource("icons/best.gif")); 
    parent.setImage(icon); 
} 

私のEclipseプラグインに既にあるアイコンを使用する方法はありますか? 主な問題は、プラグインのiconsフォルダからアイコンを取得し、それをImageオブジェクトにすることです。
ありがとうございます。

答えて

1

あなたのプラグインでは、このようなactivator classアイコンを登録することができます:イメージパスは、例えば、あなたのプラグインに関連している

@Override 
protected void initializeImageRegistry(final ImageRegistry reg) { 
    reg.put(IMAGE_PATH, imageDescriptorFromPlugin(PLUGIN_ID, IMAGE_PATH)); 
} 

icons/icon.png

あなたにもactivator class経由でこれらのイメージにアクセスすることができます。

final Image image = MyActivatorClass.getDefault().getImageRegistry().get(IMAGE_PATH); 
myShell.setImage(image); 

(Iイメージレジストリのキーとして画像パスを使用し、あなたはこのようにそれを行う必要はありませんが、それはすべてのものを作ることに注意をStringを使用するだけで少し複雑になります。)

+0

うん、それは働いて、ありがとう。複数の画像も登録できますか? – Justplayit94

+1

はい、できます。また、gregsの回答を見て、あなたのアクティベータクラスは 'AbstractUIPlugin'私はそのステップを逃した拡張する必要があります。 – moe

1

Eclipseプラグインの場合は、FileLocatorクラスを使用してプラグイン内のリソースを検索します。

String path = "icons/best.gif"; 

URL url = FileLocator.find(bundle, new Path(path), null); 

ImageDescriptor desc = ImageDescriptor.createFromURL(url); 

Image image = desc.createImage(); 

注:あなたはもはや必要ないときに配置する画像を手配しなければならないような画像の使用のために何か

アクティベータがAbstractUIPluginの場合は、ImageRegistryを利用することもできます。レジストリは処分を処理します。

iconsディレクトリがbuild.propertiesファイルに記載されていることを確認してください。これを忘れると、プラグインをエクスポートするときに問題が発生します。

+0

これは 'Activator'の' Image Registry'で働いていました。アドバイスもありがとう。 – Justplayit94

関連する問題