gpt4 book ai didi

java - 如何使用 uibinder 创建带有子项的 gwt 复合组件?

转载 作者:太空狗 更新时间:2023-10-29 22:38:10 25 4
gpt4 key购买 nike

我想创建一个组件来装饰它的子组件,例如:

我的组件.ui.xml:

<g:FlowPanel addStyleNames="myStyle">
<!-- how can i render children ? -->
</g:FlowPanel>

然后其他人可以使用:

<myapp:mycomponent>
<g:Label>Decorated child</g:Label>
</myapp:mycomponent>

如何在 uibinder 中渲染 child ? (或者在 Java 中,如果必须的话)

最佳答案

MyComponent 实现 HasWidgets 接口(interface)来添加/删除子部件。

MyComponent.ui.xml 看起来很简单

<g:FlowPanel ui:field="main" />

当您将 HasWidgets 中指定的方法委托(delegate)给 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);
}
}

打电话

<M:MyComponent>
<g:Label text="some text" />
</M:MyComponent>

将以这种方式工作。

关于java - 如何使用 uibinder 创建带有子项的 gwt 复合组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com