【问题标题】:Creating anonymous view actions in Eclipse e4在 Eclipse e4 中创建匿名视图操作
【发布时间】:2015-04-24 10:28:12
【问题描述】:

我正在尝试使用 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。但是,我不知道这是否只是为视图或全局注册处理程序,或者处理程序是否需要在部分更改时停用/重新激活。

【问题讨论】:

  • 你还在用3.x的方法声明视图吗?当你这样做时,所有 3.x 的东西仍然有效。
  • 我正在通过 org.eclipse.ui.views/e4View 注册视图,并且我正在使用 @PostContruct 等注释而不是扩展 ViewPart

标签: eclipse eclipse-rcp e4


【解决方案1】:

对于 e4 视图,您通常在 Part 的 ToolBar 部分的 fragment.e4xmi 中声明视图工具栏项。

您可以使用“已处理的工具项”,其中必须声明“命令”和“处理程序”,或者您可以使用“直接工具项”,在这种情况下您只需指定要调用的类。

添加示例处理程序执行方法可能是:

@Execute
public void execute(MPart part)
{
  MyViewClass view = (MyViewClass)part.getObject();

  ... call view methods
}

【讨论】:

  • 您如何通过这种方式访问​​内部状态?
  • 您需要在视图类中提供处理程序可以调用的方法。添加了示例处理程序
猜你喜欢
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
相关资源
最近更新 更多