Sto finalmente iniziando a "ottenere" GWT. In qualsiasi momento, un PlaceChangeEvent
possono essere licenziati in di app EventBus
in questo modo:GWT: Granularità di luoghi e ActivityMappers
History.newItem("token-for-some-new-place");
Questo aggiunge l'evento al bus, per cui un iscritto ActivityManager
scoop su e consulta la sua interna ActivityMapper
per dargli la Activity
associato con PlaceChangeEvent
's Place
.
Il Activity
(simile ad un oggetto presentatore o regolatore da MVP/MVC) ottiene quindi tutti i dati che è necessario (tramite chiamate RPC al server) ed esegue qualsiasi logica aziendale e configura la vista finale (tipicamente un Composite
di alcuni sort) da visualizzare.
Finché stiamo parlando di un'app GWT super-semplice che ha solo una regione di visualizzazione nella sua pagina host, quindi come ho detto, "lo capisco".
Dove sto soffocando ora è ciò che accade quando si dispone di un'app che contiene più aree di visualizzazione (aree che possono essere aggiornate in modo asincrono l'una dall'altra).
Allora io mi chiedo:
- Come granulare sono
ActivityMapper
s dovrebbe essere? Esiste solo unoAppActivityMapper
a livello di applicazione che esegue il mapping di tutti iPlace
s a tutte leActivity
o dovrebbe esserci una sorta di gerarchia/decomposizioneActivityMapper
, in cui sono presenti più mappatori? (E se la vostra risposta a questo è qualcosa sulla falsariga di "questo dipende dalle esigenze della vostra applicazione", quindi si prega di spiegare quali requisiti/bisogni di auto l'adeguato livello di granularità!) - Se un
Place
rappresenta un token URL nella tua app (allo scopo di rendere lo stato di un segnalibroPlace
), cosa succede quando hai un'app più complessa con più aree di visualizzazione (D1, D2, D3). In che modo un token URL (ad esempiohttp://myapp.com/#token-for-some-new-place
) esegue la mappatura su D1, D2 e D3? Non significherebbe cheActivityMapper#getActivity
dovrebbe essere in grado di restituire un elenco di attività (List<Activity>
) i cui metodistart(AcceptsOneWidget, EventBus)
verranno richiamati?
Grazie per qualsiasi aiuto qui - esempi di codice sempre rock.
Se si utilizza luoghi, io vi consiglio di usare * solo * posti ('PlaceController. goTo() '), non il' livello' di basso livello. –
Grazie Thomas ma questa è una risposta a una domanda che non ho chiesto. –
Ed è per questo che lo aggiungo come commento ;-) –