1

Scout はプロジェクトのモジュール性をサポートしているため、モジュール化することにしました。問題は、アウトラインをプロジェクトに追加するときです。そのアウトラインにページを追加する方法ですが、ページが子プロジェクトに存在する場合です。アウトラインにページを追加する関数はアウトライン内に存在します。問題は、依存関係でサイクルが発生するため、子に依存する親を持たないことです。

アウトラインは AbstractExtensibleOutline 型で、おそらくクラス ヘッダーの名前とコメントに基づいて拡張/拡張をサポートしていますが、どこでどのようにそれを行うかはまだわかりません。

4

2 に答える 2

2

プログラムによるソリューションが機能していることは間違いありませんが、Eclipse 拡張ポイントを使用した別のソリューションを提案したいと思います。これは、この API の意図された使用方法だと思います。

拡張機能では、 はまったく必要ありませんDesktopExtension

mycore.client (Core Project)
  |
  \- Desktop
        |
        \- MyOutline

myext.client (Extended Project)
  |
  \- MyPage

MyOutlineextendsの場合、 (コアで定義された) に(拡張ポイントを使用して) を直接AbstractExtensibleOutline追加することができます。MyPageMyOutlinepageContributionorg.eclipse.scout.rt.extension.client.pages

プラグイン エディタ - Eclipse

テキストを表示するplugin.xmlと、クライアント エクステンション バンドル ( myext.client) ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
   <extension
         point="org.eclipse.scout.rt.extension.client.pages">
      <pageContribution
            active="true"
            class="myext.client.pages.MyPage"
            order="1">
         <outline
               class="mycore.client.ui.desktop.outlines.MyOutline">
         </outline>
      </pageContribution>
   </extension>
</plugin>

[順序] フィールドを使用すると、ページ リスト内の位置を指定できます (この方法で、リストの途中にページを挿入できます)。

次の方法で登録することもできます。

  • pageModification
  • pageRemoval

...あなたのニーズに応じて。

Menu同じ方法で貢献する方法を説明したこのフォーラム投稿も確認してください: Multi Module - Menu Extension


Mars (バージョン 4.2 以降) では、拡張性のために別のメカニズムが導入されていることにも注意してください。詳細については、この Wiki ページを確認してください: Scout Concepts - Extensibility

この新しいメカニズムは、Kepler (Scout 3.9) で導入したものよりも強力です。Mars バージョンは、新しい拡張パターンと古い拡張パターンの両方をサポートしています。長期的には新パターンのみの対応になると思います。

于 2015-02-23T16:45:16.477 に答える