どのように私は、Eclipse RCPベースのアプリケーションのメニュー項目からアイコンを削除するには?
-
11-09-2019 - |
質問
私は、Eclipse RCPベースのアプリケーションに取り組んでいます、そして私たちは、メニュー項目のいずれかが次のテキストにアイコンを表示しないことを決定しました。私たちが見ている問題は、およびそのすべて元に戻す、やり直し、切り取り、コピー、貼り付けなどの標準的なアクションは、対応するアクションのデフォルトのアイコンを表示することです。
アイコンを無視する行動管理インフラストラクチャを指示する方法はありますか?これに対する私の強引なソリューションをMenuItem.setImage()は空命令しないようにSWTを再構築して、最終製品におけるSWTの私たち自身のコピーを含めることでしたが、軽量なソリューションが存在すべきであるように思えますます。
解決
これは私が期待したよりも簡単であることが判明します。
org.eclipse.ui.application.ActionBarAdvisorのサブクラスを作成します。このようにメソッド・レジスタをオーバーライドします:
protected void register(IAction action) {
super.register(action);
action.setImageDescriptor(null);
}
次に、createActionBarAdvisorをオーバーライドするorg.eclipse.ui.application.WorkbenchWindowAdvisorのサブクラスを作成します:
public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
return new MyActionBarAdvisor(configurer);
}
それはそれです。すべてのアクションは、もはや、アイコンを持っていません。
他のヒント
私はあなたがさらにマニフェストに入るとに探して検討したいと考えています org.eclipse.ui.viewsと見て、アイコンを除去するためにそこに何がある場合は、
のアイコンが含まれていない理由は何ですか? 多くの労力を標準から逸脱することの利点であるもの、標準的なインターフェースを作成するに入りましたか?あなたはそれらの省略は、ユーザビリティを向上させると思いますか?
あなたはsetImage(への呼び出しをインターセプトするアドバイスの周りにいくつかのAspectJの持つフラグメントを貢献してみてください)、それらを拒否することができ、そのすべてを言ってます。
あなたはplugin.xml.add拡張org.eclipse.ui.menuに拡張]タブに移動して、これを行うことができます(存在する場合ではない)を右クリックcontribution.again新しいメニューを作成クリックして、新しいメニューを作成.RIGHT uは
あなたのクラスパスにあなたのアイコンのフォルダに保存されたもので画像を変更するオプションを持っている.here