我可以在GWT中的UiBinder样式定义中使用变量吗?

时间:2013-04-17 09:22:10

标签: gwt uibinder

在以下示例中,来自文件MessageView.ui.xml:

<ui:style>
    .polite {
      position:fixed;
      background-color:notice-background-color;
      top:1em;
      left:2em;
      white-space:nowrap;
      border-radius:.5em;}
</ui:style>

<g:PopupPanel styleName="{style.polite}">
    <g:HTML ui:field="message">Message goes here.</g:HTML>
</g:PopupPanel>

我可以定义@ notice-background-color,以便其他UiBinder文件也可以使用该定义。

1 个答案:

答案 0 :(得分:3)

是的,你可以。将颜色定义为静态String

package com.myproject.client.resource;

public class MyColors {
    public static String lightGreen = "#0bdc1a";
}

定义@eval变量:

<ui:style>
    @eval notice-background-color com.myproject.client.resource.MyColors.lightGreen;

    .polite {
      position:fixed;
      background-color:notice-background-color;
      top:1em;
      left:2em;
      white-space:nowrap;
      border-radius:.5em;}
</ui:style>

<g:PopupPanel styleName="{style.polite}">
    <g:HTML ui:field="message">Message goes here.</g:HTML>
</g:PopupPanel>