UI: с, стиль не отображается - PullRequest
3 голосов
/ 15 ноября 2010

Я хотел бы использовать CSS для нескольких виджетов, используя.

Я вижу, что имя класса css запутано, но определение класса не отображается при проверке элемента в Firefox / Chrome. Вот мои коды. Кто-нибудь может подсказать, что мне не хватает? Благодарю.

Style.css

.nameSpan {  color: #3E6D8E; background-color: #E0EAF1;} 

Resources.java

public interface Resources extends ClientBundle { 
  @Source("Style.css") 
  Style style(); 
  public interface Style extends CssResource { 
    String nameSpan(); 
  } 
} 

uibinder.ui.xml

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
  <ui:with field='res' type='com.my.app.widgets.logoname.Resources'/> 
  <g:HTMLPanel> 
      <div> 
        Well hello there 
        <g:InlineLabel ui:field='nameSpan' styleName="res.style.nameSpan">kevin</g:InlineLabel>
      </div> 
  </g:HTMLPanel> 
</ui:UiBinder> 

uibinder.class

public class uibinder extends Composite { 
        private static uibinderUiBinder uiBinder =     GWT.create(uibinderUiBinder.class); 
        interface uibinderUiBinder extends UiBinder<Widget, uibinder> {} 
        @UiField(provided = true)  final Resources res;  // the style doesn't show no matter provided=true is declared or not. 
        public uibinder(Resources res) { 
                res = GWT.create(Resources.class); 
                initWidget(uiBinder.createAndBindUi(this)); 
        } 

Ответы [ 2 ]

7 голосов
/ 26 ноября 2010

Вы должны использовать res.style().ensureInjected()

2 голосов
/ 15 ноября 2010

Вам необходимо назначить стиль (атрибут styleName) где-нибудь.Например:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    <ui:with field='res' type='com.my.app.widgets.logoname.Resources'/> 
    <g:HTMLPanel> 
        <div> 
            Well hello there 
            <g:InlineLabel ui:field='nameSpan' styleName="{res.nameSpan}">kevin</g:InlineLabel>
        </div> 
    </g:HTMLPanel> 
</ui:UiBinder>

Атрибут ui:field, который вы объявили, не устанавливает стиль css.Он определяет атрибут, который должен быть заполнен в вашем uibinder классе.См. GWT документ для некоторых указаний.

...