Sto solo imparando GWT, quindi sto ancora cercando di risolvere tutte le sue stranezze e caratteristiche. Sto leggendo l'esempio che illustrano il pattern MVP, e praticamente lo prendo, tranne che mi sto chiedendo una cosa.Ridimensionamento dei "Contatti" di gwt (progetto di esempio) AppController con MVP
L'AppController che utilizzano implementa l'interfaccia ValueChangeHandler e il metodo onValueChange viene attivato quando la cronologia cambia.
Il mio problema è con questo onValueChange in AppController (l'ho incluso sotto per chi non ha visto il progetto di esempio). Sta eseguendo un confronto tra stringhe sul token della cronologia inviato e un'istanza del presentatore appropriato per gestire l'azione. Tutto questo è perfetto e dandy per l'app di esempio con 3 azioni, ma in che modo si ridimensiona l'aspetto di un'app reale con molte più azioni?
Attaccare a questo modello porterebbe a un bel po 'grande/brutto else if
, ma sono ancora troppo nuovo per GWT (e java) per dedurre un modello migliore per le app più grandi.
Qualsiasi aiuto è molto apprezzato!
public class AppController implements Presenter, ValueChangeHandler<String> {
...
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if (token != null) {
Presenter presenter = null;
if (token.equals("list")) {
presenter = new ContactsPresenter(rpcService, eventBus, new ContactsView());
}
else if (token.equals("add")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
else if (token.equals("edit")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
if (presenter != null) {
presenter.go(container);
}
}
}
}