1

私はEclipseRCPベースのアプリケーションに取り組んでいますが、どのメニュー項目にもテキストの横にアイコンを表示させたくないと判断しました。私たちが見ている問題は、元に戻す、やり直し、切り取り、コピー、貼り付けなどの標準アクションがすべて、対応するアクションのデフォルトアイコンを表示することです。

アイコンを無視するようにアクション管理インフラストラクチャに指示する方法はありますか?これに対する私の総当たりの解決策は、MenuItem.setImage()がno-opになるようにSWTを再構築し、最終製品にSWTの独自のコピーを含めることでしたが、より軽量な解決策があるはずです。 。

4

4 に答える 4

2

これは私が思っていたよりも簡単であることがわかりました。

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);
}

それでおしまい。すべてのアクションにアイコンがなくなります。

于 2009-08-04T21:01:23.967 に答える
0

マニフェストを調べてorg.eclipse.ui.viewsを調べ、アイコンを削除するためにそこに何かがあるかどうかを確認したいと思います。

于 2009-07-08T22:05:32.093 に答える
0

アイコンを含めない理由は何ですか?標準のインターフェースを作成するために多くの努力が払われましたが、標準から逸脱することの利点は何でしょうか?それらの省略は使いやすさを向上させると思いますか?

とは言っても、setImage()の呼び出しを傍受して拒否するためのアドバイスについて、AspectJを使用してフラグメントを提供してみることができます。

于 2009-07-10T10:56:19.227 に答える
0

これを行うには、plugin.xmlの拡張機能タブに移動します。拡張機能org.eclipse.ui.menuを追加します(存在しない場合)。右クリックして新しいメニューコントリビューションを作成します。もう一度右クリックして新しいメニューを作成します。ここでuクラスパスのアイコンフォルダに保存されている画像で画像を変更するオプションがあります

于 2011-08-03T13:53:03.980 に答える