0

1 つのコア プロジェクトと、コアを拡張する他のプロジェクトがあります。アウトラインを拡張する方法と、拡張されたアウトラインにページを追加する方法は知っていますが、問題はメニューです。

拡張プロジェクトのメニューを拡張したいと考えています。

ウェブでいくつかの例を見つけて、理解していると思いますが、これはうまくいきません。

私が持っているものは次のとおりです。

<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

関連フォーラム スレッド:マルチ モジュール - メニュー拡張


このパターンをテストしたところ、期待どおりに動作します。

これが私のコンテンツです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 は絶対に必要です。

于 2015-09-22T05:04:36.373 に答える