GWT css include with Client Bundle -> «Нет исходного кода для типа de.main.resources.ResourceBundle ...» - PullRequest
2 голосов
/ 22 июня 2011

после того, как я столкнулся с некоторыми проблемами с устаревшими способами включения ресурсов css в мое приложение, мне не терпится использовать ClientBundle для включения файлов css.

Я добавил следующую строку в свой ### .gwt.xml file:

<inherits name="com.google.gwt.resources.Resources" />

Я создал интерфейс, который выглядит следующим образом:

import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;

public interface ResourceBundle extends ClientBundle 
{
    public static final ResourceBundle INSTANCE = GWT.create(ResourceBundle.class);

    @Source("GWT_Chat.css")
    public CssResource css();
}

В моем методе onModuleLoad (), который я вызываю:

Window.alert(ResourceBundle.INSTANCE.css().getText());  

Мой css-файл - это случайный css-файл без каких-либо возможных добавлений gwt.

При вызове приложения в браузере я сталкиваюсь с ошибкой:

[ERROR] [gwt_chat] - Line 33: No source code is available for type de.main.resources.ResourceBundle;
 did you forget to inherit a required module?

Есть что-нибудь, что я пропустил?

1 Ответ

0 голосов
/ 22 июня 2011

Да, вам нужно реализовать подтип CssResource и вернуть его:

public interface ResourceBundle extends ClientBundle 
{
    public static final ResourceBundle INSTANCE = GWT.create(ResourceBundle.class);

    @Source("GWT_Chat.css")
    public MyCssResource css();

    public static interface MyCssResource extends CssResource {
        String getText();
    }
}
...