fae*_*anj 17 java gwt uibinder
我想创建一个组件来装饰它的子节点,例如:
mycomponent.ui.xml:
<g:FlowPanel addStyleNames="myStyle">
<!-- how can i render children ? -->
</g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)
然后其他人可以使用:
<myapp:mycomponent>
<g:Label>Decorated child</g:Label>
</myapp:mycomponent>
Run Code Online (Sandbox Code Playgroud)
我怎样才能让孩子们进入uibinder?(或者在Java中,如果必须的话)
z00*_*0bs 33
让我们MyComponent
实现HasWidgets
添加/删除子窗口小部件的界面.
在MyComponent.ui.xml
外观一样简单
<g:FlowPanel ui:field="main" />
Run Code Online (Sandbox Code Playgroud)
而您将指定的方法ind委托HasWidgets
给FlowPanel
:
public class MyComponent extends Composite implements HasWidgets {
private static MyComponentUiBinder uiBinder = GWT.create(MyComponentUiBinder.class);
interface MyComponentUiBinder extends UiBinder<Widget, MyComponent> {}
@UiField
FlowPanel main;
public MyComponent() {
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public void add(Widget w) {
main.add(w);
}
@Override
public void clear() {
main.clear();
}
@Override
public Iterator<Widget> iterator() {
return main.iterator();
}
@Override
public boolean remove(Widget w) {
return main.remove(w);
}
}
Run Code Online (Sandbox Code Playgroud)
调用
<M:MyComponent>
<g:Label text="some text" />
</M:MyComponent>
Run Code Online (Sandbox Code Playgroud)
会这样工作.