Frage

Ich verwende GWT ClientBundle zum ersten Mal. Ich schrieb Schnittstelle, die sie erweitert und hier ist der Code:

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

Meine Frage ist: Wie kann ich feststellen, wo genau diese Ressourcen (Bilder in diesem Fall) zu finden sind. Soll ich sie: a) im selben Verzeichnis wie Schnittstelle - (hässlich)? b) in einem spezifischen Verzeichnis das kann nie geändert werden? c) im Verzeichnis, dass ich will, aber es sollte Mechanismus es zu spezifizieren - (wäre toll)

?

Danke.

War es hilfreich?

Lösung

Ich schaffe in der Regel ein neues Paket für Ressourcen (com.example.project.resource) und legte die ClientBundle Schnittstelle und die entsprechenden Ressourcen dort (zusammen, wie es in einem Verzeichnis) - es ist eine Java-Datei plus ein paar Bilder, keine Notwendigkeit für eine weitere Trennung, IMHO.

Wie für die Pfade zu den Ressourcen - können Sie diese über @Source("path") Anmerkung passieren. Zum Beispiel, wenn Sie Ihre ClientBundle Schnittstelle in com.example.project.resource und Bilder in com.example.project.images haben, dann würden Sie @Source("../images/shim.gif") schreiben. Sie haben wahrscheinlich absolute Pfade verwenden könnten, aber stellen Sie sicher, dass Sie speichern sie in einer statischen Variablen und Anteil unter der Ressource, so dass es leicht außer Kraft gesetzt werden kann;)

Andere Tipps

Ähnlich wie Igor Punkte:

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

Der Schlüssel hier ist, dass, wenn Sie nicht eine Ressource (CSS / Bild / Text) verbrauchen, der GWT-Compiler es ignoriert. Dies verhindert, dass Krieg aufblasen wie Ihre Anwendung Halter bekommt und Sie haben Hunderte von Bildern bekommen und nicht sicher ist, welche verwendet werden und welche nicht.

Wenn Sie die Möglichkeit nutzen, alles fällt in den public / images Ordner, dann alle Elemente in Ihrer Anwendung Krieg aufgenommen werden, unabhängig davon, ob sie verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top