当前位置: 首页 > 面试题库 >

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

丘浩宕
2023-03-14
问题内容

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

mycomponent.ui.xml:

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

然后其他人可以使用:

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

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


问题答案:

让我们MyComponent实现HasWidgets用于添加/删除子窗口小部件的接口。

MyComponent.ui.xml外观一样简单

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

在将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);
    }
}

呼唤

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

将以这种方式工作。



 类似资料:
  • 主要内容:GWT UiBinder 介绍,GWT UiBinder 开发步骤,GWT UiBinder 示例GWT UiBinder 介绍 UiBinder 是一个框架,旨在分离用户界面的功能和视图。 UiBinder 框架允许开发人员将 gwt 应用程序构建为 HTML 页面,并在其中配置 GWT 小部件。 UiBinder 框架使与比 Java 源代码更熟悉 XML、HTML 和 CSS 的 UI 设计人员更容易协作 UIBinder 提供了一种定义用户界面的声明方式。 UIBinder 将

  • 问题内容: 我正在使用gwt uibinder。我想为字段动态设置值。我正在尝试这样的事情 并且该字段设置有这样的值 而且ValueStore有2种方法 问题是我无法调用getValue(key)。我只能调用no-args方法,这意味着以下操作是不可能的 请说明是否有一种方法可以实现,其中我可以调用传递了参数的方法。 问题答案: 不支持该方法,只能调用没有参数的方法。您将不得不直接将其公开为no

  • 如何创建一个新的GWT和GAE项目,其中包含使用Java中的google eclipse插件的模块?我尝试使用eclipse创建一个新的web应用程序,但它只是创建了一个没有模块的GWT和GAE项目。 谢谢

  • 或者我需要一个自定义序列化程序来完成这个任务吗?还是需要所有其他属性?在请求对象时,这是否会阻止数据发回?我还不确定我是否需要它,但如果可能的话,我想控制它。

  • 问题内容: 假设我有一个名为root的集合 我可以在一次调用中创建带有其子集合的文档吗? 我的意思是,如果我这样做: 那会在一瞬间创造出结构吗?老实说,我尝试了一下,doc1的标题为斜体,我认为仅适用于已删除的文档 问题答案: 您共享的代码不会创建实际的文档。它仅“保留”其中的文档ID ,然后在其下创建带有实际文档的集合。 在Firestore控制台中以斜体显示文档名称表示该位置没有物理文档,但是

  • 问题内容: 我试图用来向没有定义主键的表中插入数据。 但是事实是该表的两个字段一起在表中是唯一的。我如何使用hibernate注释实现相同的目的? 这是我的代码。 问题答案: 您可以使用和创建复合键,并将其与您的实体进行映射。例如: 然后在Java代码中使用常规方式来持久化实体。 参考:http : //docs.jboss.org/hibernate/annotations/3.5/refere