【问题标题】:Scout Eclipse extends MenuScout Eclipse 扩展了菜单
【发布时间】:2015-09-21 07:44:06
【问题描述】:

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

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

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

我拥有的是:

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

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

【问题讨论】:

    标签: menu extends eclipse-scout


    【解决方案1】:

    相关论坛帖子: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 中的绝对类名是否正确?
    • 您的扩展程序是否正确启动?

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        很抱歉误导了这个问题。

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

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

        【讨论】:

          猜你喜欢
          • 2014-11-17
          • 1970-01-01
          • 1970-01-01
          • 2015-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-04
          • 1970-01-01
          相关资源
          最近更新 更多