Scout Eclipse 扩展菜单

Scout Eclipse extends Menu

我有一个核心项目和一些扩展核心的其他项目。 我知道如何扩展大纲以及如何将页面添加到扩展大纲,但我的问题是菜单。

我想在扩展项目上扩展菜单。

我在网上找到了一些示例,我认为我理解了,但这对我不起作用。

我有的是:

<extension
     name=""
     point="org.eclipse.scout.rt.extension.client.desktopExtensions">
  <desktopExtension
        class="com.sixt.leasing.pd.scout.client.ui.desktop.DesktopExtension"
        active="true">
  </desktopExtension>
</extension>
<extension
     point="org.eclipse.scout.rt.extension.client.menus">
  <menuContribution
        active="true"
        class="com.sixt.leasing.pd.scout.client.menu.JobRunnerMenu"
        order="22">
     <desktop
           class="com.sixt.leasing.core.scout.client.ui.desktop.Desktop">
     </desktop>
  </menuContribution>
</extension> 

里面plugin.xml

我的 JobRunnerMenu 看起来像:

public class JobRunnerMenu extends AbstractExtensibleMenu {

  @Override
  protected String getConfiguredText() {

    return TEXTS.get("Job");
  }

  @Override
  protected void execAction() throws ProcessingException {

    // TODO  Auto-generated method stub.
    super.execAction();
  }

  @Override
  protected void execToggleAction(final boolean selected) throws ProcessingException {

    // TODO  Auto-generated method stub.
    super.execToggleAction(selected);
  }
}

我错过了什么?为什么这不起作用?

使您的桌面扩展基础 class AbstractExtensibleDesktop。常规 AbstractDesktop class 不加载扩展。

如果是这种情况,AbstractExtensibleDesktop#AbstractExtensibleDesktop 处的断点应该提供一个良好的调试起点。

很抱歉用这个问题误导了你。

以上代码有效,我的问题是我没有在产品文件中添加客户端。这导致客户端不可用,因此无法添加扩展。

无论如何感谢您的回答,是的,绝对需要 AbstractExtensibleDesktop。

相关论坛帖子:Multi Modul - Menu Extension


我刚刚测试了这个模式,它按预期工作。

这是我的plugin.xml(在客户端扩展中)的内容:

<extension
    point="org.eclipse.scout.rt.extension.client.menus">
 <menuContribution
       active="true"
       class="myapp.extension.client.menu.MyMenu"
       order="22">
    <desktop
          class="myapp.client.ui.desktop.Desktop">
    </desktop>
 </menuContribution>
</extension>

因为“menuContribution”将“桌面”定义为容器,所以您要添加的菜单会贡献到桌面。通常这些菜单是顶级菜单并包含子菜单。

public class MyMenu extends AbstractExtensibleMenu {

  @Override
  protected String getConfiguredText() {
    return "My Menu";
  }

  public class MessageBoxTestMenu extends AbstractExtensibleMenu {

    @Override
    protected String getConfiguredText() {
      return "Test MessageBox";
    }

    @Override
    protected void execAction() throws ProcessingException {
      MessageBox.showOkMessage(null, "This is a test", null);
    }
  }
}

结果:


  • 您 XML 中的绝对 class 名称是否正确?
  • 你的扩展是否正确启动?