Я впервые использую GWT ClientBundle. Я написал интерфейс, который расширяет его, и вот код:
package edu.etf.fuzzy.client.login;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
public interface Resources extends ClientBundle {
@Source("logo_federacija.jpg")
ImageResource logo();
@Source("shim.gif")
ImageResource shim();
}
Мой вопрос: как мне узнать, где именно эти ресурсы (изображения в данном случае) могут быть найдены. Должен ли я поставить их: а) в том же каталоге, что и интерфейс - (некрасиво)? б) в каком-то конкретном каталоге, который никогда нельзя изменить? в) в каталоге, который я хочу, но должен быть механизм для его указания - (было бы здорово)?
Спасибо.
Я обычно создаю новый пакет для ресурсов (com.example.project.resource
) и помещаю ClientBundle
интерфейс и соответствующие ресурсы туда (вместе, в одну директорию) - это один java-файл плюс куча картинок, нет необходимости в дальнейшем разделении, ИМХО.
Что касается путей к ресурсам - их можно передавать через аннотацию @Source("path")
. Например, если ваш интерфейс ClientBundle
находится в com.example.project.resource
, а изображения в com.example.project.images
, то вы напишите @Source("../images/shim.gif")
. Возможно, вы можете использовать абсолютные пути, но убедитесь, что вы храните их в статической переменной и делитесь ими с ресурсом, так что они могут быть легко переопределены ;)