2010-09-16 16 views
6

Sto cercando di creare un sito Web gwt con UIBinder. È bello, funziona, ma ho un problema con ui: style.GWT/UIBinder come trovare il file css principale con <ui:style>

Il mio progetto è mavenized (io uso l'archetipo gwt-maven-plugin).

I file Application.html e Application.css sono in src/main/resources/com/foo/bar/public.

La pagina che sto cercando di creare è in src/main/java/com/foo/bar/client/Page1.java e Page1.ui.xml.

posso utilizzare un file CSS se è nello stesso pacchetto con:

<ui:style src="Page1.css" /> 

ma mi piacerebbe di indirizzare l'application.css (così ho potuto evitare di avere gli stessi stili in ogni file css in ogni pacchetto)

Ho provato diversi percorsi relativi e Application.css non è mai stato trovato.

C'è qualcuno, là fuori, che ha avuto lo stesso problema e che avrebbe voluto aiutarmi?

Grazie!

+0

Sono anche interessato. Ho solo giocato un po 'con esso, perché non era davvero urgente, ma penso che avrò bisogno di una soluzione per questo. – Strelok

risposta

5

Se il css dell'applicazione viene fatto riferimento altrove in un ClientBundle, è possibile utilizzare ed evitare del tutto i problemi relativi al percorso. Vedi Using an external resource.

0

Si dovrebbe pensare se questo è davvero ciò che si vuole fare. UiBinder usa css attraverso il meccanismo ClientBundle, che ottimizza il css, offusca i nomi di stile e quindi incorpora gli stili come parte del codice javascript compilato. Se poi usi anche lo stesso file css nel modo tradizionale (con un tag <link>), allora stai richiedendo ai tuoi utenti di scaricare due volte le stesse regole CSS. In pratica il ritardo potrebbe non essere troppo evidente ma in linea di principio è un po 'scarso.

In ogni caso questo non è possibile, poiché ClientBundle (e quindi UiBinder) funziona solo sui file css nelle cartelle di origine. Come dice gk5885, puoi creare un singolo ClientBundle e utilizzarlo a livello di progetto includendolo nei tuoi modelli di UiBinder. Dovresti considerare di spostare più css che puoi in questo sistema.

1

Vecchia domanda, ma; ho semplicemente fatto riferimento uno stile globale come questo, senza la ui: direttiva stile:

g: TabPanel ui: campo = "tabpanel" width = "100%" height = "90%" styleName = "nameInMyMainCss"

Equivale a chiamare setStyleName ("nameInMyMainCss"); nella classe java corrispondente.

Problemi correlati