質問

Eclipseでは、ActionSets拡張ポイントを使用してツールバーのボタンを簡単に指定できます。ただし、いくつかの項目をプログラムで指定する必要がある場合、同じ外観を得ることができません。フレームワークがこれらにネイティブボタンを使用しているとは思いませんが、これまでのところ、Eclipseの外観に一致する適切なレシピを見つけることができません。コード内でこの機能を複製する適切なスニペットを誰かが見つけたかどうかを確認したかったのです。

役に立ちましたか?

解決

質問から判断するのは難しいですが、ツールバーにControlContributionを追加してButtonを返すことを試みているようです。これにより、ツールバー上のボタンが、説明しているようにネイティブボタンのように表示されます。これは次のようになります。

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(new ControlContribution("Toggle Chart") {
    @Override
    protected Control createControl(Composite parent)
    {
        Button button = new Button(parent, SWT.PUSH);
        button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
                // Perform action
            }
        });
     }
});

代わりに、アクションをツールバーに追加する必要があります。これにより、標準のEclipseツールバーボタンと一致するボタンがツールバーに作成されます。これは次のようになります。

Action myAction = new Action("", imageDesc) {
    @Override
    public void run() {
        // Perform action
    }
};

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(myAction);

他のヒント

ツールバーにプログラムでアクションを追加するためのコードの抜粋を入れていただけますか? ApplicationActionBarAdvisor クラスでこれを行うと思いますか?宣言的に追加するボタンとプログラム的に追加するボタンの外観に違いはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top