Bonjour,
Je suis en train de réaliser une application perso en GWT en utilisant le Model Vue Presenter comme expliqué sur le site de google (http://code.google.com/intl/fr/webto...ture.html#view).
Au moment du lancement de l application, j'obtiens l erreur:Je vous fournis le code de la classe VoiturePresenter:Citation:
Caused by: java.lang.NullPointerException at com.voiture.entrainement.client.presenter.VoiturePresenter.go(VoiturePresenter.java:38) at com.voiture.entrainement.client.presenter.AppController.bind(AppController.java:29) at com.voiture.entrainement.client.presenter.AppController.(AppController.java:22) at com.voiture.entrainement.client.Voiture.onModuleLoad(Voiture.java:17) ... 9 more
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 package com.voiture.entrainement.client.presenter; import java.util.ArrayList; import java.util.List; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.Widget; import com.voiture.entrainement.client.VoitureServerAsync; import com.voiture.entrainement.shared.Voiture; public class VoiturePresenter implements Presenter { public interface Display { HasClickHandlers getAddButton(); Widget asWidget(); void setData(List<Voiture> data); } private final Display display; private final VoitureServerAsync rpcService; private final HandlerManager eventBus; private List<Voiture> voitures; public VoiturePresenter(Display display,VoitureServerAsync voitureServer,HandlerManager eventBus){ this.display = display; this.rpcService = voitureServer; this.eventBus = eventBus; } @Override public void go(HasWidgets container) { bind(); container.clear(); container.add(display.asWidget()); fetchVoiture(); } private void fetchVoiture(){ rpcService.getVoitureList(new AsyncCallback<ArrayList<Voiture>>(){ public void onSuccess(ArrayList<Voiture> result) { voitures = result; display.setData(voitures); } public void onFailure(Throwable caught) { Window.alert("Error fetching contact details"); } }); } private void bind(){ display.getAddButton().addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { // TODO Auto-generated method stub } }); } }
Voici le code de la classe AppController:
Je vous remercie de votre aideCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 package com.voiture.entrainement.client.presenter; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.HasWidgets; import com.voiture.entrainement.client.VoitureServerAsync; import com.voiture.entrainement.client.view.VoitureView; public class AppController implements Presenter, ValueChangeHandler<String> { private final HandlerManager eventBus; private final VoitureServerAsync rpcService; private HasWidgets container; public AppController(HandlerManager eventBus, VoitureServerAsync rpcService) { this.eventBus = eventBus; this.rpcService = rpcService; bind(); } private void bind(){ // History.newItem("list"); History.addValueChangeHandler(this); Presenter presenter = new VoiturePresenter( new VoitureView(),rpcService, eventBus); presenter.go(container); } @Override public void onValueChange(ValueChangeEvent<String> event) { String token = event.getValue(); Presenter presenter =null; if (token != null) { //Presenter presenter = null; } if (token.equals("list")) { System.err.println("entrer1"); presenter = new VoiturePresenter( new VoitureView(),rpcService, eventBus); System.err.println("entrer2"); } presenter.go(container); } @Override public void go(HasWidgets container) { this.container = container; if ("".equals(History.getToken())) { History.newItem("list"); } else { History.fireCurrentHistoryState(); } } }