2016-04-14 7 views
0

私は、パースペクティブを切り替えるために使用するツールバーがあります。ツールバーの各ボタンは異なる視点を開きます。私はその時に開かれているものを感じるユーザーを強調したいと思っています。私はボタンを "下"と "下"の状態でトグルしていきたいと思っています。私は、ツールバーに新しいBaseActionsを追加するために使用コード:Eclipse RCP ToolBarでのカスタムトグル管理

ToolBarManager toolBarManager = new ToolBarManager(); 
coolBar.add(toolBarManager); 
toolBarManager.add(ordersDownload); 

と切り替えるには、ボタンの動作を変更し、私のBaseActionのコードの一部:IActionインサイド

public class BaseAction implements IAction { 

@Override 
public int getStyle() { 
    return SWT.TOGGLE; 
} 

方法boolean isCheckedがあるが、それツールバーのボタンをクリックすると、その状態が反転します(DOWN - > UP、UP - > DOWN)。私は、DOWN状態で同時に複数のボタン(Toggle)を持っていきたいと思っているので、何とかすべてのボタンに対して状態UPを呼び出し、状態をDOWNで1つだけ残したいと思う。それは、部分的に解決され、[OK]を

The picture that shows how it should look like

+0

'getStyle'は' IAction.AS_xxxx'値のどれかを返す必要があります - 'SWT.TOGGLE'は無効です。 'IAction'全体を自分で実装するのではなく、' org.eclipse.jface.action.Action'を拡張する方がより普通です。 –

答えて

0

。 greg-449はIActionスタイルにIAction.AS_RADIO_BUTTONを使用するよう提案しました。私のツールバーから区切り記号(extends AbstractGroupMarker)を削除した後、常に1つのトグルダウン(マウスクリックが発生すると、他のすべてのトグルがUPに設定されます)があります。今私はプログラム的にトグルを切り替える必要があり、私が使用します。

(私の IAction->runWithEvent機能が正常に呼び出されることを意味します)別の視点に切り替わりますが、クリックされたトグルが以前、などDOWN設定されていません(切り換えられない
ActionContributionItem lItem = (ActionContributionItem)Facade.toolbar.getItems()[1]; 
lItem.getWidget().notifyListeners(SWT.Selection, new Event());