0

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

我想扩展扩展项目的菜单。

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

我所拥有的是:

<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);
  }
}

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

4

3 回答 3

1

相关论坛主题:Multi Modul - 菜单扩展


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

这是我的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 中的绝对类名是否正确?
  • 您的扩展程序是否正确启动?
于 2015-09-22T07:02:06.390 回答
0

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

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

于 2015-09-21T21:54:38.803 回答
0

我很抱歉误导了这个问题。

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

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

于 2015-09-22T05:04:36.373 回答