GET automatico del client bundle sulla base di file su disco
-
29-09-2019 - |
Domanda
Al momento sto facendo buon uso di di GWT ClientBundles nel mio app. Funziona bene, ma ho un gran numero di risorse e diventa noioso per creare manualmente interfacce Java per ogni file:
@ClientBundle.Source("world_war_ii.txt")
public ExternalTextResource worldWarII();
@ClientBundle.Source("spain.txt")
public ExternalTextResource spain();
@ClientBundle.Source("france.txt")
public ExternalTextResource france();
Mi piacerebbe essere in grado di (forse al momento della compilazione) elencare dinamicamente ogni file * .txt in una determinata directory, e quindi avere accesso run-time per loro, forse come un ExternalTextResource[]
array, piuttosto che dover esplicitamente li elenco nel mio codice. Ci possono essere centinaia di tali risorse, e li enumerare manualmente come codice sarebbe molto doloroso e impossibile da mantenere.
La documentazione ClientBundle
dice esplicitamente che "per fornire un'astrazione del file system" è un non-obiettivo, in modo purtroppo questo sembra non consentire quello che sto cercando di fare.
Qual è il modo migliore per affrontare un gran numero di risorse esterne che deve essere disponibile a tempo di esecuzione? Sarebbe un aiuto generatore?
Soluzione 2
Ho finito dopo questo consiglio : eseguire le operazioni di file sul server, e quindi restituire un elenco di file di dati (meta) tramite una chiamata RPC.
Questa risulta essere abbastanza semplice, e mi permette anche di restituire i riferimenti leggeri (nomi di file) nell'elenco, che io uso per popolare un Tree
lato client; quando l'utente fa clic su un TreeItem
il contenuto del testo effettivo vengono scaricati.
Altri suggerimenti
C'è un generatore automatico per CssResource
- forse si potrebbe un'occhiata a il suo codice e modificarlo per le vostre esigenze?