私がGWTで持っている共通の設計の1つは、AとBという2つの子を含むウィジェットを作成することです。GWTでは、uibinder xmlファイルで宣言されたウィジェットをロードしない方法がありますか?
私はこれらの2つのウィジェットAとBをメインウィジェットに関連付けられたuibinderファイルに宣言します。
私がしたいことは、if文に応じてAをロードするかどうかを指定することです。
理想的なアプローチは、ウィジェットAにprovide = trueを設定し、このウィジェットをロードしない場合にウィジェットAをnullに設定することです。しかし、GWTはエラーを投げます。
uibinderでウィジェットを宣言し、ロードしない方法はありますか?
おかげ
はEDIT:議論の多くは後に、理想的なアプローチは、フィールドと「オプション= true」を「=真の提供」オプション=真、createAndBindUIがあれば例外をスローしてはならないと宣言することですフィールドはnullです。これはきれいなアプローチです。
この機能の必見はGWTに存在すると思われる場合は、この問題を主演してください: http://code.google.com/p/google-web-toolkit/issues/detail?id=5699
EDIT 2:LazyPanelを使っトーマスによって記載されているようにこれを処理するためのより良い方法のようです。
これは優れた方法です。私はこれが最善のアプローチだと思う。 20ヵ月後、私は私の投票を更新する;)(トーマス、あなたは私の答えの大部分を勝ち取っています、最近モンペリエに来たら、私に知らせてください、私は飲み物を支払うでしょう) –
コンテンツ内に '@UiField(provided = true)'ウィジェットで試してみたことはありませんが、これはユニットテストされていません。 –
@ThomasBroyer、なぜLazyPanelは1人の子供だけを許可しますか?私はそれが複数の子供を持たない理由は何も見ません。今私は 'SimplePanel'で子をラップする必要があり、レイアウトが面倒です。 – damluar