Я использую TabBar, и я хочу разработать компонент по-разному. Так одно время этот стиль, другое время тот стиль. Я думал, что это будет работать, но это не сделало:
TabBar t = new TabBar();
t.addTab( "1" );
t.addTab( "2" );
t.addStyleName( MyResources.INSTANCE.css().slickTab() );
И:
public interface MyResources extends ClientBundle
{
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("style.css") MyCssResource css();
}
public interface MyCssResource extends CssResource
{
String slickTab();
}
В CSS
.slickTab .gwt-TabBar .gwt-TabBarItem {
background-color: #ff0000;
font-weight: normal;
}
Но появление не изменяется. Что я делаю неправильно?
Интерфейс MyCssResource должен находиться внутри MyResources.
Вот пример :
public interface Resources extends ClientBundle
{
public static final Resources INSTANCE =
GWT.create( Resources.class );
/***********************************************
* Home
***********************************************/
@Source( "./css/home.css" )
public HomeCss getHomeCss();
public interface HomeCss extends CssResource
{
String loginBtn();
}
/***********************************************
* Another Page
***********************************************/
@Source( "./css/AnotherPage.css" )
public AnotherPage getAnotherPageCss();
public interface AnotherPage extends CssResource
{
String title();
}
}
Именно так я использую все виды Resource, и это работает очень хорошо.
Когда вам нужно использовать его много раз в одном и том же методе или функции, вы можете сделать вот так :
HomeCss homeStyle = Resource.INSTANCE.getHomeCss();
yourPanel.setStyleName( homeStyle.yourPanel() );
Не стесняйтесь спрашивать, если вы чего-то не поняли.