【问题标题】:GWT: How to use Constants in UiBinder Template [duplicate]GWT:如何在 UiBinder 模板中使用常量 [重复]
【发布时间】:2013-03-18 17:52:06
【问题描述】:

我有一个关于 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 模板中引用这个常量文件?

非常感谢

【问题讨论】:

    标签: java gwt uibinder


    【解决方案1】:

    我希望这对你有用: 1) 在您的 Java 类中,为您的样式名称定义一个静态 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 的接口轻松(且优雅)地做到这一点,但我认为这不是您想要的(如果我误解了您的需求,请纠正我,以便我提供更多提示)。

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

    【讨论】:

    • styleName="yourClass.getSomeStyle" 必须与 {} - styleName="{yourClass.getSomeStyle}"。
    • 是的,当然对不起。答案已编辑
    • 非常感谢您的回答。我认为这会起作用,但我现在认为最好将硬编码的样式名称放入 UiBinder 模板文件中,因为如果我直接输入样式名称,IntelliJ 支持自动完成,但如果我使用常量文件则不会这样做:)。我相信这在未来的其他场景中会很有用。
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多