2

私は GWT と GWTP に不慣れで、質問はばかげているように聞こえます..抽象的な PresenterWidget または類似のものを作成できますか? 通常の Java のように「クラス」を拡張し、ロジックを再利用/拡張します。しかし、クラスだけでなく、View と Presenter のすべてが含まれます。私は最初の状況を説明しようとしていますが、別の考えがあるかもしれません。サンプルGUI

うまくいけば、画像はそれを説明するのに役立ちます. 「Main-Tab」と他のすべてのタブは、同じ基本構造と同じロジックを持つビューのコレクションで構成されています。

ベース構造の構成要素

  • すべての境界線
  • 画像(スイッチ)
  • タイトル
  • テキストエリア
  • 親の contentSlot に追加される PresenterWidget (左のメニュー)

ベースの下には、ボタン、テキスト、その他のウィジェットなどのビュー固有のコンポーネントがあります。したがって、ロジックを含むビューの主要部分は繰り返しです。スイッチが「トグル」されている場合、図の一番下のビューのように、ビューは非表示になります (テキストエリアとすべての子/ビュー固有のコンポーネント)。さらに、左の PresenterWidget は色を変更します。

ロジックは機能していますが、コードを繰り返さずにこれを解決する適切な方法と、スイッチを切り替えることで非表示の子要素を追加する可能性を探しています。PresenterWidget 子ウィジェットに追加して、追加する場所を定義できますか? like: 出来たとしてもちょっと不便な感じ。

前もって感謝します。

4

1 に答える 1

1

ソリューションを投稿したいだけです:

これで、スイッチ、タイトル、および説明用の単純なコンポジット (KPICommonView) ができました。説明の下に別の FlowPanel があり、特定のコンポーネントが後で追加されます。このため、Composite は「HasWidgets」を実装し、Widget が追加されて子要素がある場合に UiBinder によって呼び出される「add(Widget w)」メソッドをオーバーライドします。

<own:KPICommonView title="First Header" description="I am a happy description :)" anchorToken="{nameAnchors.getFirst}">
   <g:Label>child component</g:Label>
</own:KPICommonView>

すべてのセグメントに対して PresenterWidget を実行し、すべての PresenterWidget に KPICommonView の 1 つが追加されているかどうか、または複数の CommonViews を追加する通常の Presenter を 1 つ実行するかどうかはわかりません。CommonView はさらに、サイドのメニュー項目の PresenterWidget を作成します。コンストラクター (anchorToken、title) から属性を取得し、それをスロットに追加します (ビューが「addInSlot()」を呼び出すように保存された親をハードコーディングしているため、これは醜いです。スイッチの繰り返しコードは、によって処理されます。 KPICommonView.

于 2013-08-07T12:27:54.163 に答える