Question

J'utilise ClientBundle GWT pour la première fois. J'ai écrit interface qui étend et est le code ici:

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

Ma question est: Comment puis-je savoir où exactement se trouve ces ressources (images dans ce cas). Dois-je les mettre: a) dans le même répertoire que l'interface - (laid)? b) dans un répertoire spécifique qui ne peut être changé? c) dans le répertoire que je veux, mais il devrait y avoir mécanisme pour le spécifier - (serait grand)

?

Merci.

Était-ce utile?

La solution

Je crée généralement un nouveau package pour les ressources (com.example.project.resource) et de mettre l'interface ClientBundle et les ressources appropriées là (ensemble, comme dans dans un répertoire) - c'est un fichier java, plus un tas d'images, pas besoin d'une séparation plus poussée, à mon humble avis.

En ce qui concerne les chemins d'accès aux ressources - vous pouvez les passer par l'annotation @Source("path"). Par exemple, si vous avez votre interface ClientBundle en com.example.project.resource et des images dans com.example.project.images, vous écririez @Source("../images/shim.gif"). Vous pouvez probablement utiliser des chemins absolus, mais assurez-vous de les stocker dans une variable statique et échanger entre les ressources, il peut être facilement remplacée;)

Autres conseils

Tout comme points d'Igor:

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

La clé ici est que si vous ne consommez pas une ressource (CSS / image / texte), le compilateur GWT l'ignorer. Cela empêche guerre ballonnement votre application obtient porte et vous avez des centaines d'images et ne sont pas sûrs qui sont utilisés et qui ne sont pas.

Si vous utilisez l'option de laisser tomber tout dans les publics / images dossier, puis tous les éléments seront inclus dans votre guerre d'application, indépendamment du fait qu'ils sont utilisés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top