Хорошо, чтобы установить Css для виджета в Gwt или Gwtp, мы можем сделать следующее:
-1. directly from gwt code. Ex: label1.getElement().getStyle().setBackground("blue"); -2. include "ui:style" in UiBinder xml file, but this css only visible to that UiBinder -3. include "ui:width" in UiBinder xml file, it will visible to all UiBinder - and there r many way to set the Css directly to the widget in UiBinder.
Меня смутило то, что если бы я использовал , ex
<ui:with field='res' type="com.myproj.client.MyResource" />
и если myResource.css
имеет .gwt-TabLayoutPanel
, то мне не нужно использовать "addStyleNames", например <g:TabLayputPanel />
, он отлично распознает CSS.
Однако, если я добавлю .gwt-ScrollPanel
в myResource.css
и использую <g: ScrollPanel />
, то ничего не произойдет.
Поэтому мне нужно создать public interface MyCssResource extends CssResource
, а затем добавить String gwt-ScrollPanel();
к MyCssResource
. Но Java eclipse не допускает дефиса -
в имени метода, поэтому мне нужно изменить его на String gwtScrollPanel();
.
Наконец, мне нужно добавить addStyleNames
в <g: ScrollPanel />
, например <g: ScrollPanel addStyleNames="{res.css.gwtScrollPanel}" />
, тогда все заработает.
Это также означает, что если я хочу использовать .gwt-TabLayoutPanel
в MyCssResource
, мне нужно удалить дефис -
, и это вызовет несогласованность в моем коде.
Итак, кто-нибудь может объяснить мне, что здесь происходит? Я запутался?