2011-12-04 9 views
13

私はカスタムウィジェットを作成するタスクに直面しました。 と私はCustomButton(CustomButtonのような)UIBinderの子要素設定を持つgwtカスタムウィジェット

<u:MyWidget> 
    <u:image><g:Image .../></u:image> 
    <u:mainContent><g:Panel.../></u:mainContent> 
</u:MyWinget> 

のような一般的なUiBinderサンプルメッセージの方法でそれを使用したいが、それは何らかの形でそのカスタム子要素を定義することは可能ですか多分それはUIBuilderで事前に定義された事ありますか?事前

答えて

16

それを行うには正しい方法で

おかげでUiChildアノテーションを使用することです。

public class MyWidget extends Composite { 
    public MyWidget() { 
    // ... 
    } 

    @UiChild(tagname = "image") 
    void addImage(Image image) { 
    // ... 
    } 

    @UiChild(tagname = "mainContent") 
    void addMainContent(Widget contentWidget) { 
    } 
} 
+0

@トーマス - しかし、どのようにこれを総称して行いますか?たとえば、すべての子パネルでmyInnerPanelが実装されている場合、その子にどのようにアクセスできますか?ドキュメントでは、このタグ名はメソッド名と完全に一致している必要があります。回避策はありますか? –

+2

大丈夫、それは働いている。 MyAbstractWidgetが 'customtag'タグの子によって拡張されている限り、@ UiChildメソッドでは、問題なしでウィジェットからMyAbstractWidgetにアップキャストできます。そうすれば、@ UiChildメソッドと親ウィジェットは適切に形成された将来の 'customtag'の子を処理できます。 –

関連する問題