Pergunta

Estou usando o GWT ClientBundle pela primeira vez.Eu escrevi uma interface que a estende e aqui está o código:

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();
}

Minha pergunta é:Como posso saber exatamente onde esses recursos (imagens, neste caso) podem ser encontrados.Devo colocá-los:a) no mesmo diretório da interface - (feio)?b) em algum diretório específico que nunca pode ser alterado?c) no diretório que eu quero, mas deveria haver mecanismo para especificá-lo - (seria ótimo)?

Obrigado.

Foi útil?

Solução

Eu geralmente crio um novo pacote para recursos (com.example.project.resource) e colocar o ClientBundle Interface e os recursos apropriados lá (juntos, como em um diretório) - é um arquivo java mais um monte de imagens, sem necessidade de maior separação, IMHO.

Quanto aos caminhos para os recursos - você pode passá -los via @Source("path") anotação. Por exemplo, se você tem o seu ClientBundle interface em com.example.project.resource e imagens em com.example.project.images, então você escreveria @Source("../images/shim.gif"). Você provavelmente poderia usar caminhos absolutos, mas certifique -se de armazená -los em uma variável estática e compartilhar entre o recurso, para que possa ser facilmente substituído;)

Outras dicas

Semelhante aos pontos de Igor:

com.yoursite.resources: YourClientBundle.java
com.yoursite.resources.css: YourCssResource.java
com.yoursite.resources.images: image files here

A chave aqui é que se você não consumir um recurso (CSS/Imagem/Texto), o compilador GWT irá ignorá-lo.Isso impede inchaço de guerra conforme seu aplicativo ganha suporte e você tem centenas de imagens e não tem certeza de quais são usadas e quais não são.

Se você usar a opção de largar tudo no público/imagens pasta, todos os itens serão incluídos em seu aplicativo war, independentemente de serem usados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top