Domanda

Sto usando GWT ClientBundle per la prima volta. Ho scritto interfaccia che estende ed ecco il codice:

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

La mia domanda è: come faccio a dire esattamente dove queste risorse (immagini in questo caso) può essere trovato. Devo metterli: a) nella stessa directory come interfaccia - (brutto)? b) in una directory specifica che non può essere cambiato? c) nella directory che voglio, ma ci dovrebbe essere il meccanismo per specificare esso - (sarebbe grande)

?

Grazie.

È stato utile?

Soluzione

Io di solito creare un nuovo pacchetto per le risorse (com.example.project.resource) e mettere l'interfaccia ClientBundle e le risorse adeguate lì (insieme, come in in una directory) - è un file java, più una serie di immagini, senza bisogno di ulteriore separazione, IMHO.

Per quanto riguarda i percorsi per le risorse - è possibile passarli via @Source("path") annotazione. Per esempio, se avete la vostra interfaccia ClientBundle in com.example.project.resource e le immagini in com.example.project.images, allora devi scrivere @Source("../images/shim.gif"). Probabilmente si potrebbe usare percorsi assoluti, ma assicuratevi di metterle in una variabile statica e condividere tra la risorsa, in modo che possa essere facilmente ignorata;)

Altri suggerimenti

Simile a punti di Igor:

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

La chiave qui è che se non si consumano una risorsa (CSS / immagine / testo), il compilatore GWT lo ignorerà. Questo impedisce guerra gonfiare come applicazione diventa titolare e hai centinaia di immagini e non sono sicuro che vengono utilizzati e quali non lo sono.

Se si utilizza l'opzione di far cadere tutto in pubblici / immagini cartella, quindi tutti gli elementi saranno inclusi nella vostra guerra applicazione, indipendentemente dal fatto che sono abituati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top