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