我正在尝试使用Eclipse e4创建一个新视图(我的产品基于RCP 3.x,但现在更新为使用Legacye4.xmi)。在过去,当我想创建一个工具栏动作来与内部视图状态交互时,我会做这样的事情;
private TableViewer viewer;
private IAction doSomething;
private void makeActions() {
doSomething = new Action() {
public void run() {
// Do something e.e.g with a table viewer
tableViewer.getXXXX();
}
}
getViewSite().getActionsBars().getToolBarManager().add(doSomething);
}
如何使用e4 API实现相同的目标?
据我所知,我现在需要注册一个命令并在plugin.xml / fragment.e4xmi中挂钩一个处理程序,但这种方法只适用于单独的类,而不是内部类。我找到了看起来很有希望的东西here。但是,我不知道这是仅为视图还是全局注册处理程序,还是处理程序需要停用/重新激活部件更改。
答案 0 :(得分:1)
对于e4视图,您通常会在Part的ToolBar部分的fragment.e4xmi中声明视图工具栏项。
您可以使用'Handled Tool Item',您必须在其中声明'command'和'handler',或者您可以使用'Direct Tool Item',在这种情况下您只需指定要调用的类。
添加示例处理程序execute方法可能是:
@Execute
public void execute(MPart part)
{
MyViewClass view = (MyViewClass)part.getObject();
... call view methods
}