编程语言
首页 > 编程语言> > java – GWT:如何在UiBinder模板中使用常量

java – GWT:如何在UiBinder模板中使用常量

作者:互联网

参见英文答案 > GWT – What’s the shortest way of simply sharing strings and number constants between Java code and UiBinder files?                                    1个
我有一个与UiBinder有关的问题.

我有以下UiBinder文件:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
             xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <g:HTMLPanel>
        <div>
            <g:VerticalPanel>
                <g:Label>Please enter your password:</g:Label>
                <g:FlowPanel>
                    <g:PasswordTextBox ui:field="textbox"/>
                    <g:Button ui:field="button" text="Login" styleName="?????"/>
                </g:FlowPanel>
            </g:VerticalPanel>
        </div>
    </g:HTMLPanel>
</ui:UiBinder>

如果我把样式名称放在???中,它可以正常工作.

但是,我们有一个常量文件(不是i18n常量),它包含所有css名称作为常量.喜欢:

public class CSSConstants {
    public static final String CSS_TITLE = "title";

    public static final String CSS_TEXT_NORMAL = "text_normal";
    public static final String CSS_TEXT_ERROR = "text_error";
    public static final String CSS_TEXT_ERROR = "button blue";
    .......
}

我想知道如何在UiBinder模板中引用这个常量文件?

非常感谢

解决方法:

我希望这对你有用:
1)在Java类中,为style-name定义一个静态getter:

public static String getSomeStyle(){}

2)访问您的样式名称如下:

 <ui:with type="package.of.your.class.ClassName" field="yourClass"></ui:with>

<g:Button ui:field="button" text="Login" styleName="{yourClass.getSomeStyle}"/>

这在访问targetHistoryToken值时工作正常,我希望它适用于您的情况.

当然,你可以使用扩展ClientBundle的界面轻松(优雅地)做到这一点,但我不认为这是你想要的(如果我误解了你的需要,请纠正我,所以我可以提供更多提示).

(抱歉,在发布我的答案之前,我没有开发环境来测试它)

标签:uibinder,java,gwt
来源: https://codeday.me/bug/20190901/1780836.html