Java Eclipse RCP工具栏中的自定义切换管理

Java Eclipse RCP工具栏中的自定义切换管理,java,eclipse,swt,toggle,rcp,Java,Eclipse,Swt,Toggle,Rcp,我有一个用于切换透视图的工具栏。工具栏中的每个按钮都会打开不同的透视图。我想强调用户当时打开的感觉,我想把我的按钮作为“向下”和“向上”状态的切换。我用于向工具栏添加新BaseActions的代码: ToolBarManager-ToolBarManager=newtoolbarmanager(); 添加(工具栏管理器); 工具栏管理器.add(ordersDownload); 我的BaseAction的部分代码将按钮行为更改为切换: public类BaseAction实现IAAction{

我有一个用于切换透视图的工具栏。工具栏中的每个按钮都会打开不同的透视图。我想强调用户当时打开的感觉,我想把我的按钮作为“向下”和“向上”状态的切换。我用于向工具栏添加新BaseActions的代码:

ToolBarManager-ToolBarManager=newtoolbarmanager();
添加(工具栏管理器);
工具栏管理器.add(ordersDownload);
我的BaseAction的部分代码将按钮行为更改为切换:

public类BaseAction实现IAAction{
@凌驾
public int getStyle(){
返回SWT.TOGGLE;
}
在IAction中有一个方法
boolean被选中
,但当我点击工具栏按钮时,它的状态是反向的(向下->向上,向上->向下)。我不想有多个按钮(切换)在状态关闭的同时,我想为所有按钮调用状态打开,只留下一个状态关闭的按钮


好的,部分解决了。正如greg-449建议的那样,IAction.As\u单选按钮应该用于IAction样式。在我从工具栏中删除分隔符(因为它们扩展了AbstractGroupMarker)后,总是会有一个向下切换(当鼠标单击时,所有其他切换都设置为向上)。现在我需要以编程方式切换切换,我使用:

ActionContributionItem lItem = (ActionContributionItem)Facade.toolbar.getItems()[1];
lItem.getWidget().notifyListeners(SWT.Selection, new Event());

切换到另一个透视图(这意味着正确调用了my
IAction->runWithEvent
函数),但单击的切换未切换(未设置为DOWN,以前使用的切换保持DOWN)

getStyle
必须返回一个
IAction。AS_xxxx
值-
SWT.TOGGLE
无效。更常见的做法是扩展
org.eclipse.jface.action.action
而不是自己尝试实现整个
IAction