RetargetAction
在rcp的用途还是很大的。
使用场景:
一个按钮在不同的情况下对应不同的操作,可是ui是一样的。
打个比方:
“删除” 可以删除部门、也可以删除员工。
如果用同一个ui来进行设计。
这样就要用到 RetargetAction 了。
RetargetAction 就是一个UI占位符。真实的Action 可以动态的绑定。
RetargetAction 是实现了IPartListener 接口。可以同part进行监听。
代码如:
public void partActivated(IWorkbenchPart part) {
super.partActivated(part);
IWorkbenchPartSite site = part.getSite();
SubActionBars bars = (SubActionBars) ((PartSite) site).getActionBars();
bars.addPropertyChangeListener(propertyChangeListener);
setActionHandler(bars.getGlobalActionHandler(getId()));
}
SubActionBars bars = (SubActionBars) ((PartSite) site).getActionBars();
bars.addPropertyChangeListener(propertyChangeListener);
看到这里大家应该就明白怎么回事了吧。
一般使用RetargetAction 就需要注册监听。