是否可以在 GWT UiBinder 上下文中引用枚举

发布于 2024-11-19 04:39:20 字数 757 浏览 1 评论 0原文

我有一个如下所示的枚举

public enum MyEnum {
    A,
    B;
}

然后我有一个带有自定义组件的 UiBinder 文件,该组件具有需要上面枚举的 setter 和 getter。 (我已经删除了“我可以引用我的枚举并将该值以任何方式放入 myAttribute 中吗?”的额外代码

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

?我想要完成的是这样的事情

<ui:UiBinder ....>
    <ui:with field="myEnumField" type="com.example.MyEnum" />
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="{myEnumField.A}" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

但是似乎我不能用 ui:with 来做到这一点。我可以这样做吗这到底是什么?

I have an enumeration that looks like the following

public enum MyEnum {
    A,
    B;
}

And then I have a UiBinder file with a custom component that has a setter and getter expecting the enum above. (I've stripped the extra code for

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

Can I reference my enum and put that value into myAttribute in any way? What I want to accomplish is something like this

<ui:UiBinder ....>
    <ui:with field="myEnumField" type="com.example.MyEnum" />
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="{myEnumField.A}" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

However it would seem that I cannot do this with ui:with. Can I do this in any way at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除→记忆 2024-11-26 04:39:20

经过更多搜索后,我意识到您实际上可以执行以下操作:

<ui:import field="com.example.MyEnum.*" />
<g:HTMLPanel>
    ...
    <myNamespace:myComponent myAttribute="{A}" />
    ...
</g:HTMLPanel>

After searching a bit more I realized that you could actually do the following:

<ui:import field="com.example.MyEnum.*" />
<g:HTMLPanel>
    ...
    <myNamespace:myComponent myAttribute="{A}" />
    ...
</g:HTMLPanel>
我恋#小黄人 2024-11-26 04:39:20

这是可能的。您应该能够直接将枚举传递给属性,例如,

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="A" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

MyComponent 小部件应该有一个接受 MyEnum 类型的 uiConstructor。

@UiConstructor
public MyComponent(MyEnum myAttribute){
}

It is possible. You should be able to pass the enum to the attribute directly like,

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="A" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

The MyComponent widget should have a uiConstructor that accepts MyEnum type.

@UiConstructor
public MyComponent(MyEnum myAttribute){
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文