IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

Probleme de bindage


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut Probleme de bindage
    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:
    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
    Je vous fournis le code de la classe VoiturePresenter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    		    }
     
    	}
     
     
    }
    Je vous remercie de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut
    Personne à une idée.

    Pour être plus précis le problème vient d'ici:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
      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);
    	}
    Lorsque je mets en commentaire presenter.go(container), je n ai pas d' erreur. Ceci signifie que container pointe à null.

    Ce qui est bizarre pour moi.

    Merci encore de votre aide

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut
    A quel endroit initialise tu l'objet container ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    Salut,

    Je pense que tu cherches au mauvais endroit peux tu me donner le code de ta vue ? ça doit être "VoitureView"....

    Maxime

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo