Различный цвет шрифта в GWT-Label - PullRequest
2 голосов
/ 02 апреля 2012

Возможно ли иметь два разных цвета шрифта в gwt-label?

Пример:

Label titleLabel = new Label(ticket.getTicketType().getName()+" - <<"+art+">>");

Вторая часть этикетки должна быть красной.

1 Ответ

8 голосов
/ 02 апреля 2012

Используйте виджет HTML:

titleLabel = new HTML(SafeHtmlUtils.htmlEscape(ticket.getTicketType().getName())
    + " - <span style='color: red'>&lt;&lt;"
    + SafeHtmlUtils.htmlEscape(art)
    + "&gt;&gt;</span>");

Чтобы сделать его немного более читабельным, я бы использовал SafeHtmlTemplates (и в качестве бонуса он проверит ваш синтаксис HTML и автоматическиhtmlEscape ваши строки, так что вы не рискуете пропустить одну, так что это безопаснее):

interface Template extends SafeHtmlTemplates {
   @Template("{0} - <span style='color: red'>&lt;&lt;{1}&gt;&gt;</span>")
   SafeHtml title(String ticketTypeName, String art);
}
static final Template TEMPLATE = GWT.create(Template.class)

...

titleLabel = new HTML(TEMPLATE.title(ticket.getTicketType().getName(), art));

Я бы также заменил style='color: red' на class='{2}' и CssResource, ноэто всего лишь бонус, и в основном детали.

...