2011-12-04 14 views
13

Özel pencere öğesi oluşturmak için bir görevle karşı karşıyayım, kapsayıcı davranışa sahip - içeride 3 panel var. Ve her nasılsa o özel alt öğeleri tanımlamak için CustomButtongwt UIBinder öğesinde yapılandırılmış özel pencere öğesi (CustomButton gibi)

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

gibi genel UiBinder bir şekilde mümkün mü kullanmak istiyorum ya da belki UIBuilder önceden tanımlanmış bir şeydir? peşin

cevap

16

bunu yapmak için doğru yolu içinde

Teşekkür UiChild ek açıklama kullanmaktır.

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

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

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

@Thomas - Peki bunu genel olarak nasıl yapıyorsunuz? Örneğin, tüm çocuk panelleri myInnerPanel'i uyguladıysa, o çocuğa nasıl erişebilirim? Dokümanlar, bu etiket adının yöntem adıyla tam olarak eşleşmesi gerektiğini söylüyor. Etrafta bir iş var mı? –

+2

tamam, işe yaradı. Benim genel türüm, MyAbstractWidget 'customtag' etiketinin çocuğu tarafından genişletildiğini söyleyin, sonra @ UiChild yönteminde, Widget'tan MyAbstractWidget'i sorunsuz yayınlayabilirim. Bu şekilde, @ UiChild yöntemi ve ana pencere öğesi, düzgün şekilde oluşturulmuş gelecekteki “özel etiket” çocuğunu işleyebilir. –

İlgili konular