2013-10-15 2 views
1

저는 최근에 GWT에 뛰어 들었습니다.@UiChild Extra "addChildObject"XML 태그가 필요합니까?

@UiChild는 UIBinder ui.xml에 표현 된 것 외에도 프로그램 적으로 children 요소를 추가 할 수 있기 때문에 좋습니다.

그러나 나는 정말 부풀어 오르고 이상하게 보이는 것을 발견했습니다.

그래서 처음에 @UiChild를 만났을 때, 나는 이렇게 작동 할 것이라고 생각했습니다.

<g:FlowPanel>   
     <c:CustomWidget customWidgetParameter="I am a 
parameter"ui:field="customFieldMappingName"/>         
</g:FlowPanel> 

@UiChild(tagname ="CustomWidget") 
    public void addCustomWidget(CustomWidget cw) 

깔끔하고 깨끗합니다. 나는 GWT가 "CustomWidget"태그를 찾을 것이라고 생각했다. 그러나 연구를 마친 후에 이런 식으로해야한다는 것을 알았습니다.

<g:FlowPanel> 
    <c:addCustomWidget> 
     <c:CustomWidget customWidgetParameter="I am a parameter" 
      ui:field="customFieldMappingName"/>   
    </c:addCustomWidget> 
</g:FlowPanel> 

@UiChild(tagname ="addCustomWidget") 
    public void addCustomWidget(CustomWidget cw) 

내가이 방법을 잘못 사용하고 있습니까? 아니면 왜 이런 식으로 구현 된 이유에 대해 내가 놓친 몇 가지 이유/작은 세부 사항이 있습니까?

답변

2

이유가 있는지는 확실하지 않지만 @UiChild 정의가 여러 개있을 수 있습니다. 아마 GWT는 호출 할 수있는 기능을 확인하는 유형 정보 만 태그 이름을 사용하지 않습니다

<gui:MyCustomContainer> 
    <gui:myHeader> 
     <g:SomeWidget> 
    </gui:myHeader> 
    <gui:myContent> 
     <g:SomeWidget> 
    </gui:myContent> 
</gui:MyCustomContainer> 

그리고 당신의 MyCustoContainer 클래스 : 당신의 생각에 대한

@UiChild(tagname="myHeader") 
public void addHeader(Widget widget); 

@UiChild(tagname="myContent") 
public void addContent(Widget widget); 
+0

감사합니다! 그래, 그게 틀림없는 이유야. 나는 어쨌든 당신의 uichild가 요소 일지 어떨지를 제어 할 수있는 주석의 속성을 어떻게 든 살릴 수 있었으면 좋겠다. 어쩌면 그 좋은 아이디어는 GWT가 오픈 소스이기 때문에 그런 것을 추가하려고 시도했을 것이다! – Zerkz

관련 문제